You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
4.2 KiB
144 lines
4.2 KiB
linters:
|
|
disable-all: true
|
|
enable:
|
|
- asciicheck
|
|
- bodyclose
|
|
- deadcode
|
|
- depguard
|
|
- dogsled
|
|
- errcheck
|
|
- errorlint
|
|
- exportloopref
|
|
- goconst
|
|
- gocritic
|
|
- gocyclo
|
|
- gofmt
|
|
- goimports
|
|
- goprintffuncname
|
|
- gosec
|
|
- gosimple
|
|
- govet
|
|
- ifshort
|
|
- importas
|
|
- ineffassign
|
|
- misspell
|
|
- nakedret
|
|
- nilerr
|
|
- nolintlint
|
|
- prealloc
|
|
- revive
|
|
- rowserrcheck
|
|
- staticcheck
|
|
- structcheck
|
|
- stylecheck
|
|
- typecheck
|
|
- unconvert
|
|
- unparam
|
|
- unused
|
|
- varcheck
|
|
- whitespace
|
|
|
|
linters-settings:
|
|
ifshort:
|
|
# Maximum length of variable declaration measured in number of characters, after which linter won't suggest using short syntax.
|
|
max-decl-chars: 50
|
|
importas:
|
|
no-unaliased: true
|
|
alias:
|
|
# Kubernetes
|
|
- pkg: k8s.io/api/core/v1
|
|
alias: corev1
|
|
- pkg: k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1
|
|
alias: apiextensionsv1
|
|
- pkg: k8s.io/apimachinery/pkg/apis/meta/v1
|
|
alias: metav1
|
|
- pkg: k8s.io/apimachinery/pkg/api/errors
|
|
alias: apierrors
|
|
- pkg: k8s.io/apimachinery/pkg/util/errors
|
|
alias: kerrors
|
|
# Controller Runtime
|
|
- pkg: sigs.k8s.io/controller-runtime
|
|
alias: ctrl
|
|
staticcheck:
|
|
go: "1.19"
|
|
stylecheck:
|
|
go: "1.19"
|
|
depguard:
|
|
include-go-root: true
|
|
packages:
|
|
- io/ioutil # https://go.dev/doc/go1.16#ioutil
|
|
|
|
issues:
|
|
max-same-issues: 0
|
|
max-issues-per-linter: 0
|
|
# We are disabling default golangci exclusions because we want to help reviewers to focus on reviewing the most relevant
|
|
# changes in PRs and avoid nitpicking.
|
|
exclude-use-default: false
|
|
# List of regexps of issue texts to exclude, empty list by default.
|
|
exclude:
|
|
# The following are being worked on to remove their exclusion. This list should be reduced or go away all together over time.
|
|
# If it is decided they will not be addressed they should be moved above this comment.
|
|
- Subprocess launch(ed with variable|ing should be audited)
|
|
- (G204|G104|G307)
|
|
- "ST1000: at least one file in a package should have a package comment"
|
|
exclude-rules:
|
|
- linters:
|
|
- gosec
|
|
text: "G108: Profiling endpoint is automatically exposed on /debug/pprof"
|
|
- linters:
|
|
- revive
|
|
text: "exported: exported method .*\\.(Reconcile|SetupWithManager|SetupWebhookWithManager) should have comment or be unexported"
|
|
- linters:
|
|
- errcheck
|
|
text: Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*print(f|ln)?|os\.(Un)?Setenv). is not checked
|
|
# With Go 1.16, the new embed directive can be used with an un-named import,
|
|
# revive (previously, golint) only allows these to be imported in a main.go, which wouldn't work for us.
|
|
# This directive allows the embed package to be imported with an underscore everywhere.
|
|
- linters:
|
|
- revive
|
|
source: _ "embed"
|
|
# Exclude some packages or code to require comments, for example test code, or fake clients.
|
|
- linters:
|
|
- revive
|
|
text: exported (method|function|type|const) (.+) should have comment or be unexported
|
|
source: (func|type).*Fake.*
|
|
- linters:
|
|
- revive
|
|
text: exported (method|function|type|const) (.+) should have comment or be unexported
|
|
path: fake_\.go
|
|
# Disable unparam "always receives" which might not be really
|
|
# useful when building libraries.
|
|
- linters:
|
|
- unparam
|
|
text: always receives
|
|
# Dot imports for gomega or ginkgo are allowed
|
|
# within test files.
|
|
- path: _test\.go
|
|
text: should not use dot imports
|
|
- path: _test\.go
|
|
text: cyclomatic complexity
|
|
- path: _test\.go
|
|
text: "G107: Potential HTTP request made with variable url"
|
|
# Append should be able to assign to a different var/slice.
|
|
- linters:
|
|
- gocritic
|
|
text: "appendAssign: append result not assigned to the same slice"
|
|
- linters:
|
|
- gocritic
|
|
text: "singleCaseSwitch: should rewrite switch statement to if statement"
|
|
# It considers all file access to a filename that comes from a variable problematic,
|
|
# which is naiv at best.
|
|
- linters:
|
|
- gosec
|
|
text: "G304: Potential file inclusion via variable"
|
|
- linters:
|
|
- revive
|
|
text: "package-comments: should have a package comment"
|
|
|
|
run:
|
|
timeout: 10m
|
|
skip-files:
|
|
- "zz_generated.*\\.go$"
|
|
- ".*conversion.*\\.go$"
|
|
allow-parallel-runners: true
|