2019-08-05 06:32:43 -04:00
|
|
|
linters:
|
|
|
|
enable:
|
|
|
|
- deadcode
|
2021-12-23 11:57:27 -05:00
|
|
|
- depguard
|
2019-08-05 06:32:43 -04:00
|
|
|
- goimports
|
|
|
|
- golint
|
2019-08-06 13:11:25 -04:00
|
|
|
- gosec
|
2019-08-05 06:32:43 -04:00
|
|
|
- gosimple
|
|
|
|
- govet
|
|
|
|
- ineffassign
|
2019-08-28 12:31:14 -04:00
|
|
|
- misspell
|
2019-10-13 20:15:48 -04:00
|
|
|
- staticcheck
|
|
|
|
- structcheck
|
|
|
|
- typecheck
|
2019-08-05 06:32:43 -04:00
|
|
|
- unconvert
|
2019-10-13 20:15:48 -04:00
|
|
|
- unused
|
|
|
|
- varcheck
|
2019-08-05 06:32:43 -04:00
|
|
|
|
|
|
|
disable:
|
|
|
|
- errcheck
|
|
|
|
|
|
|
|
run:
|
|
|
|
concurrency: 2
|
|
|
|
modules-download-mode: vendor
|
|
|
|
|
|
|
|
skip-dirs:
|
|
|
|
- docs
|
|
|
|
|
|
|
|
linters-settings:
|
|
|
|
govet:
|
|
|
|
check-shadowing: false
|
2021-12-23 11:57:27 -05:00
|
|
|
depguard:
|
|
|
|
list-type: blacklist
|
|
|
|
include-go-root: true
|
|
|
|
packages:
|
|
|
|
# The io/ioutil package has been deprecated.
|
|
|
|
# https://go.dev/doc/go1.16#ioutil
|
|
|
|
- io/ioutil
|
2019-08-06 13:11:25 -04:00
|
|
|
issues:
|
2019-10-13 20:13:32 -04:00
|
|
|
# The default exclusion rules are a bit too permissive, so copying the relevant ones below
|
|
|
|
exclude-use-default: false
|
|
|
|
|
2019-08-06 13:11:25 -04:00
|
|
|
exclude-rules:
|
2019-10-13 20:13:32 -04:00
|
|
|
# These are copied from the default exclude rules, except for "ineffective break statement"
|
|
|
|
# and GoDoc checks.
|
|
|
|
# https://github.com/golangci/golangci-lint/blob/0cc87df732aaf1d5ad9ce9ca538d38d916918b36/pkg/config/config.go#L36
|
|
|
|
- text: "Error return value of .((os\\.)?std(out|err)\\..*|.*Close|.*Flush|os\\.Remove(All)?|.*printf?|os\\.(Un)?Setenv). is not checked"
|
|
|
|
linters:
|
|
|
|
- errcheck
|
|
|
|
- text: "func name will be used as test\\.Test.* by other packages, and that stutters; consider calling this"
|
|
|
|
linters:
|
|
|
|
- golint
|
|
|
|
- text: "G103: Use of unsafe calls should be audited"
|
|
|
|
linters:
|
|
|
|
- gosec
|
|
|
|
- text: "G104: Errors unhandled"
|
|
|
|
linters:
|
|
|
|
- gosec
|
|
|
|
- text: "G204: Subprocess launch(ed with (variable|function call)|ing should be audited)"
|
|
|
|
linters:
|
|
|
|
- gosec
|
|
|
|
- text: "(G301|G302): (Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)"
|
|
|
|
linters:
|
|
|
|
- gosec
|
|
|
|
- text: "G304: Potential file inclusion via variable"
|
|
|
|
linters:
|
|
|
|
- gosec
|
2021-05-27 20:15:56 -04:00
|
|
|
- text: "G306: Expect WriteFile permissions to be 0600 or less"
|
|
|
|
linters:
|
|
|
|
- gosec
|
|
|
|
- text: 'G307: Deferring unsafe method "Close" on type "*os.File"'
|
|
|
|
linters: gosec
|
2019-10-13 20:13:32 -04:00
|
|
|
|
2019-08-28 12:31:14 -04:00
|
|
|
# Exclude some linters from running on tests files.
|
|
|
|
- path: _test\.go
|
|
|
|
linters:
|
|
|
|
- errcheck
|
|
|
|
- gosec
|
|
|
|
|
2019-10-13 20:11:40 -04:00
|
|
|
# Suppress golint complaining about generated types in api/types/
|
|
|
|
- text: "type name will be used as (container|volume)\\.(Container|Volume).* by other packages, and that stutters; consider calling this"
|
|
|
|
path: "api/types/(volume|container)/"
|
|
|
|
linters:
|
|
|
|
- golint
|
2021-04-16 18:13:23 -04:00
|
|
|
# FIXME: evaluate these and fix where needed: G307: Deferring unsafe method "*os.File" on type "Close" (gosec)
|
|
|
|
- text: "G307: Deferring unsafe method"
|
|
|
|
linters:
|
|
|
|
- gosec
|
2019-09-11 13:29:55 -04:00
|
|
|
# FIXME temporarily suppress these. See #39924
|
2019-10-13 20:07:51 -04:00
|
|
|
- text: "SA1019: .*\\.Xattrs is deprecated: Use PAXRecords instead"
|
2019-09-11 13:29:55 -04:00
|
|
|
linters:
|
|
|
|
- staticcheck
|
2019-09-11 13:41:03 -04:00
|
|
|
# FIXME temporarily suppress these. See #39926
|
2021-04-16 10:50:31 -04:00
|
|
|
- text: "SA1019: httputil.NewClientConn"
|
2019-09-11 13:41:03 -04:00
|
|
|
linters:
|
|
|
|
- staticcheck
|
2019-10-13 20:07:51 -04:00
|
|
|
# FIXME temporarily suppress these (related to the ones above)
|
2021-04-16 10:50:31 -04:00
|
|
|
- text: "SA1019: httputil.ErrPersistEOF"
|
2019-10-13 20:07:51 -04:00
|
|
|
linters:
|
|
|
|
- staticcheck
|
2021-05-27 20:15:56 -04:00
|
|
|
# This code is doing some fun stuff with reflect and it trips up the linter.
|
|
|
|
- text: "field `foo` is unused"
|
|
|
|
path: "libnetwork/options/options_test.go"
|
|
|
|
linters:
|
|
|
|
- structcheck
|
|
|
|
- unused
|
|
|
|
# This field is only used on windows but is defined in a platform agnostic file.
|
|
|
|
# The linter doesn't understand that the field is used.
|
|
|
|
- text: "`resolverOnce` is unused"
|
|
|
|
path: libnetwork/network.go
|
|
|
|
linters:
|
|
|
|
- structcheck
|
2021-04-16 18:13:23 -04:00
|
|
|
- unused
|
2021-05-31 07:45:56 -04:00
|
|
|
|
|
|
|
# Maximum issues count per one linter. Set to 0 to disable. Default is 50.
|
|
|
|
max-issues-per-linter: 0
|
|
|
|
|
|
|
|
# Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
|
|
|
|
max-same-issues: 0
|