Skip to content

Commit

Permalink
Add golangci -lint, fix error of code
Browse files Browse the repository at this point in the history
Signed-off-by: GitHub <[email protected]>
  • Loading branch information
Aisuko authored Oct 16, 2023
1 parent 2139daa commit 04a4912
Show file tree
Hide file tree
Showing 17 changed files with 99 additions and 278 deletions.
12 changes: 2 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,8 @@ jobs:
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
# Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version.
version: v1.54

# Optional: working directory, useful for monorepos
# working-directory: somedir

# Optional: golangci-lint command line arguments.

# Optional: show only new issues if it's a pull request. The default value is `false`.
# only-new-issues: true
version: latest
args: --timeout=5m
tests:
name: Tests
runs-on: ubuntu-latest
Expand Down
177 changes: 53 additions & 124 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,135 +1,64 @@
linters-settings:
depguard:
list-type: blacklist
packages:
# logging is allowed only by logutils.Log, logrus
# is allowed to use only in logutils package
- github.com/sirupsen/logrus
packages-with-error-message:
- github.com/sirupsen/logrus: "logging is allowed only by logutils.Log"
dupl:
threshold: 100
exhaustive:
default-signifies-exhaustive: false
funlen:
lines: 100
statements: 50
gci:
local-prefixes: github.com/golangci/golangci-lint
enabled: true
max-len: 120
line-length: 120
goconst:
min-len: 2
min-occurrences: 2
enabled: true
gocritic:
enabled-tags:
- diagnostic
- experimental
- opinionated
- performance
- style
disabled-checks:
- dupImport # https://github.com/go-critic/go-critic/issues/845
- ifElseChain
- octalLiteral
- whyNoLint
- wrapperFunc
gocyclo:
min-complexity: 15
goimports:
local-prefixes: github.com/golangci/golangci-lint
golint:
min-confidence: 0
gomnd:
settings:
mnd:
# don't include the "operation" and "assign"
checks:
- argument
- case
- condition
- return
gosec:
settings:
exclude: -G204
enabled: true
disable:
- parallelize
- nesting
- hugeParam
- hugeStruct
- nestParam
- prealloc
govet:
check-shadowing: false
settings:
printf:
funcs:
- (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof
- (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf
- (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf
- (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf
lll:
line-length: 950
maligned:
suggest-new: true
misspell:
# Correct spellings using locale preferences for US or UK.
# Setting locale to US will correct the British spelling of 'colour' to 'color'.
# Default is to use a neutral variety of English.
locale: US
ignore-words:
- eles
nolintlint:
allow-leading-space: true # don't require machine-readable nolint directives (i.e. with no leading space)
allow-unused: false # report any unused nolint directives
require-explanation: false # don't require an explanation for nolint directives
require-specific: false # don't require nolint directives to be specific about which linter is being skipped
enabled: true
check-shadowing: true
tests: true
golint:
enabled: true
min-confidence: 0.8
unused:
enabled: true
check-exported: true
check-packages: true
check-generated: true
tests: true
allow-unused-type-export: true
cyclop:
enabled: true
average-strictness: 7
scopelint:
enabled: true
tests: true


# Configuration for golangci-lint that is suitable for a Kubernetes operator project built with Golang
linters:
# please, do not use `enable-all`: it's deprecated and will be removed soon.
# inverted configuration with `enable-all` and `disable` is not scalable during updates of golangci-lint
disable-all: true
enable:
# todo[kushthedude]: commenting most of the checks as our code can't persist all of the changes, however we can plan further on code-quality after v1.0 release.
# - bodyclose
# - deadcode
- dogsled
- errcheck
# - exhaustive
# - funlen
# - goconst
# - gocritic
# - gocyclo
- gofmt
- goimports
# - revive
# todo[kusthedude]: restore gosec check, once this issue is resolved https://github.com/golangci/golangci-lint/issues/177
# - gosec
# - gomnd
# - goprintffuncname
# - gosimple
enable-all: false
disable-all: false
linters:
- gci
- goconst
- gocritic
- govet
# - ineffassign
# - interfacer
- lll
- misspell
# - nakedret
# - nolintlint
# - rowserrcheck
# - scopelint
- staticcheck
# - structcheck
# - stylecheck
- typecheck
# - unconvert
# - unparam
# - unused
# - varcheck
- whitespace

# don't enable:
# - asciicheck
# - gochecknoglobals
# - gocognit
# - godot
# - godox
# - goerr113
# - maligned
# - nestif
# - prealloc
# - testpackage
# - wsl
- golint
- unused
- cyclop
- scopelint
exclude-rules:
- testpackage

run:
timeout: 5m
enable-cache: true
skip-dirs:
- vendor
- bundle
- config
- hack
- helpers
- img
10 changes: 5 additions & 5 deletions cmd/errorutil/internal/coder/commands.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,11 @@ func commandAnalyze() *cobra.Command {
Long: `analyze analyzes a directory tree for error codes`,
Args: cobra.MinimumNArgs(0),
RunE: func(cmd *cobra.Command, args []string) error {
globalFlags, err := getGlobalFlags(cmd)
gFlags, err := getGlobalFlags(cmd)
if err != nil {
return err
}
return walkSummarizeExport(globalFlags, false, false)
return walkSummarizeExport(gFlags, false, false)
},
}
}
Expand All @@ -123,15 +123,15 @@ func commandUpdate() *cobra.Command {
Long: "update replaces error codes where specified, and updates error details",
Args: cobra.MinimumNArgs(0),
RunE: func(cmd *cobra.Command, args []string) error {
globalFlags, err := getGlobalFlags(cmd)
gFlags, err := getGlobalFlags(cmd)
if err != nil {
return err
}
updateAll, err := cmd.Flags().GetBool(forceUpdateAllCodesCmdFlag)
updateAll, err = cmd.Flags().GetBool(forceUpdateAllCodesCmdFlag)
if err != nil {
return err
}
return walkSummarizeExport(globalFlags, true, updateAll)
return walkSummarizeExport(gFlags, true, updateAll)
},
}
cmd.PersistentFlags().BoolVar(&updateAll, forceUpdateAllCodesCmdFlag, false, "Update and re-sequence all error codes.")
Expand Down
4 changes: 1 addition & 3 deletions cmd/syncmodutil/internal/modsync/sync.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,7 @@ func (g *GoMod) PrintReplacedVersions() {
}
}
func (g *GoMod) SyncRequire(f io.Reader, throwerr bool) (gomod string, err error) {
var b = make([]byte, 1000)
b, err = io.ReadAll(f)
b, err := io.ReadAll(f)
if err != nil {
return string(b), err
}
Expand Down Expand Up @@ -90,7 +89,6 @@ func (g *GoMod) SyncRequire(f io.Reader, throwerr bool) (gomod string, err error

// NewGoMod takes an io.Reader to a go.mod and returns GoMod struct
func New(f io.Reader) (*GoMod, error) {
var b = make([]byte, 1000)
b, err := io.ReadAll(f)
if err != nil {
return nil, err
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ go 1.21

replace (
github.com/Sirupsen/logrus => github.com/sirupsen/logrus v1.9.3
github.com/docker/docker => github.com/moby/moby v20.10.7+incompatible
github.com/docker/docker => github.com/moby/moby v20.10.24+incompatible
github.com/docker/libcompose => github.com/docker/libcompose v0.4.1-0.20190808084053-143e0f3f1ab9
github.com/googleapis/gnostic => github.com/googleapis/gnostic v0.5.5
github.com/jaguilar/vt100 => github.com/tonistiigi/vt100 v0.0.0-20190402012908-ad4c4a574305
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -953,8 +953,8 @@ github.com/moby/buildkit v0.8.2-0.20210401015549-df49b648c8bf h1:dHwWBX8OhYb69qV
github.com/moby/buildkit v0.8.2-0.20210401015549-df49b648c8bf/go.mod h1:GJcrUlTGFAPlEmPQtbrTsJYn+cy+Jwl7vTZS7jYAoow=
github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc=
github.com/moby/moby v20.10.7+incompatible h1:mMDsIjUeon2FpxCJz0Xj32wzRcTbGLVzG1uEbPalok4=
github.com/moby/moby v20.10.7+incompatible/go.mod h1:fDXVQ6+S340veQPv35CzDahGBmHsiclFwfEygB/TWMc=
github.com/moby/moby v20.10.24+incompatible h1:hjfxUufgeyrgolyaOWASyR9SvehpNcq/QHp/tx4VgsM=
github.com/moby/moby v20.10.24+incompatible/go.mod h1:fDXVQ6+S340veQPv35CzDahGBmHsiclFwfEygB/TWMc=
github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8=
github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
github.com/moby/sys/mount v0.1.0/go.mod h1:FVQFLDRWwyBjDTBNQXDlWnSFREqOo3OKX9aqhmeoo74=
Expand Down
8 changes: 4 additions & 4 deletions models/controllers/meshsync.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,20 +39,20 @@ func (ms *meshsync) GetStatus() MesheryControllerStatus {

if err == nil {
ms.status = Enabled
meshSyncPod, err := ms.kclient.KubeClient.CoreV1().Pods("meshery").List(context.TODO(), metav1.ListOptions{
meshSyncPod, errMeshery := ms.kclient.KubeClient.CoreV1().Pods("meshery").List(context.TODO(), metav1.ListOptions{
LabelSelector: "component=meshsync",
})

if len(meshSyncPod.Items) == 0 || kubeerror.IsNotFound(err) {
if len(meshSyncPod.Items) == 0 || kubeerror.IsNotFound(errMeshery) {
return ms.status
}
for _, pod := range meshSyncPod.Items {
switch pod.Status.Phase {
case v1.PodRunning:
ms.status = Running
broker := NewMesheryBrokerHandler(ms.kclient)
brokerEndpoint, err := broker.GetPublicEndpoint()
if err != nil {
brokerEndpoint, errOfEndpoint := broker.GetPublicEndpoint()
if errOfEndpoint != nil {
return ms.status
}
hostIP := strings.Split(brokerEndpoint, ":")[0]
Expand Down
2 changes: 1 addition & 1 deletion utils/cue.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func JsonSchemaToCue(value string) (cue.Value, error) {
}
cueCtx := cuecontext.New()
cueJsonSchemaExpr := cueCtx.BuildExpr(jsonSchema)
if err := cueJsonSchemaExpr.Err(); err != nil {
if err = cueJsonSchemaExpr.Err(); err != nil {
return out, ErrJsonSchemaToCue(err)
}
extractedSchema, err := jsonschema.Extract(cueJsonSchemaExpr, &jsonschema.Config{
Expand Down
7 changes: 5 additions & 2 deletions utils/kubernetes/apply-manifest.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,10 +162,13 @@ func createObject(restHelper *resource.Helper, namespace string, obj runtime.Obj
return nil, err
}

object, err := restHelper.Create(namespace, update, obj)
var object runtime.Object
var er error

object, err = restHelper.Create(namespace, update, obj)
if err != nil {
if kubeerror.IsAlreadyExists(err) && update {
object, er := restHelper.Replace(namespace, name, update, obj)
object, er = restHelper.Replace(namespace, name, update, obj)
if er != nil {
if (kubeerror.IsInvalid(er) && strings.Contains(er.Error(), "field is immutable")) || (kubeerror.IsInvalid(er) && strings.Contains(er.Error(), "primary clusterIP can not be unset")) {
return object, nil
Expand Down
3 changes: 2 additions & 1 deletion utils/kubernetes/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ import (
// DetectKubeConfig detects the kubeconfig for the kubernetes cluster and returns it
func DetectKubeConfig(configfile []byte) (config *rest.Config, err error) {
if len(configfile) > 0 {
cfgFile, err := processConfig(configfile)
var cfgFile []byte
cfgFile, err = processConfig(configfile)
if err != nil {
return nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion utils/kubernetes/expose/expose.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ func Expose(

// Check if the resource can be exposed or not
gk := info.GetObjectKind().GroupVersionKind().GroupKind()
if err := canBeExposed(gk); err != nil {
if err = canBeExposed(gk); err != nil {
return nil, ErrResourceCannotBeExposed(err, gk.Kind)
}

Expand Down
2 changes: 1 addition & 1 deletion utils/kubernetes/helm.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
// We will only make use of URL/ChartLocation/LocalPath to get and load the helm chart
func ConvertHelmChartToK8sManifest(cfg ApplyHelmChartConfig) (manifest []byte, err error) {
setupDefaults(&cfg)
if err := setupChartVersion(&cfg); err != nil {
if err = setupChartVersion(&cfg); err != nil {
return nil, ErrApplyHelmChart(err)
}

Expand Down
2 changes: 1 addition & 1 deletion utils/kubernetes/kompose/composefile.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func (dc *DockerComposeFile) Validate(schema []byte) error {
}
cueCtx := cuecontext.New()
cueJsonSchemaExpr := cueCtx.BuildExpr(jsonSchema)
if err := cueJsonSchemaExpr.Err(); err != nil {
if err = cueJsonSchemaExpr.Err(); err != nil {
return ErrValidateDockerComposeFile(err)
}
extractedSchema, err := jsonschema.Extract(cueJsonSchemaExpr, &jsonschema.Config{
Expand Down
Loading

0 comments on commit 04a4912

Please sign in to comment.