2019-08-05 10:32:43 +00:00
|
|
|
linters:
|
|
|
|
enable:
|
2021-12-23 16:57:27 +00:00
|
|
|
- depguard
|
2024-03-06 14:15:24 +00:00
|
|
|
- dupword # Checks for duplicate words in the source code.
|
2019-08-05 10:32:43 +00:00
|
|
|
- goimports
|
2019-08-06 17:11:25 +00:00
|
|
|
- gosec
|
2019-08-05 10:32:43 +00:00
|
|
|
- gosimple
|
|
|
|
- govet
|
2023-04-08 18:03:27 +00:00
|
|
|
- importas
|
2019-08-05 10:32:43 +00:00
|
|
|
- ineffassign
|
2019-08-28 16:31:14 +00:00
|
|
|
- misspell
|
2022-07-02 19:51:37 +00:00
|
|
|
- revive
|
2019-10-14 00:15:48 +00:00
|
|
|
- staticcheck
|
|
|
|
- typecheck
|
2019-08-05 10:32:43 +00:00
|
|
|
- unconvert
|
2019-10-14 00:15:48 +00:00
|
|
|
- unused
|
2019-08-05 10:32:43 +00:00
|
|
|
|
|
|
|
disable:
|
|
|
|
- errcheck
|
|
|
|
|
|
|
|
run:
|
|
|
|
concurrency: 2
|
|
|
|
modules-download-mode: vendor
|
|
|
|
|
|
|
|
skip-dirs:
|
|
|
|
- docs
|
|
|
|
|
|
|
|
linters-settings:
|
2024-03-06 14:15:24 +00:00
|
|
|
dupword:
|
|
|
|
ignore:
|
|
|
|
- "true" # some tests use this as expected output
|
|
|
|
- "false" # some tests use this as expected output
|
|
|
|
- "root" # for tests using "ls" output with files owned by "root:root"
|
2023-04-08 18:03:27 +00:00
|
|
|
importas:
|
|
|
|
# Do not allow unaliased imports of aliased packages.
|
|
|
|
no-unaliased: true
|
|
|
|
|
|
|
|
alias:
|
|
|
|
# Enforce alias to prevent it accidentally being used instead of our
|
|
|
|
# own errdefs package (or vice-versa).
|
|
|
|
- pkg: github.com/containerd/containerd/errdefs
|
|
|
|
alias: cerrdefs
|
2023-05-08 13:33:44 +00:00
|
|
|
- pkg: github.com/opencontainers/image-spec/specs-go/v1
|
|
|
|
alias: ocispec
|
2023-04-08 18:03:27 +00:00
|
|
|
|
2019-08-05 10:32:43 +00:00
|
|
|
govet:
|
|
|
|
check-shadowing: false
|
2021-12-23 16:57:27 +00:00
|
|
|
depguard:
|
2023-08-25 00:19:35 +00:00
|
|
|
rules:
|
|
|
|
main:
|
|
|
|
deny:
|
|
|
|
- pkg: io/ioutil
|
|
|
|
desc: The io/ioutil package has been deprecated, see https://go.dev/doc/go1.16#ioutil
|
2024-02-29 21:14:50 +00:00
|
|
|
- pkg: "github.com/stretchr/testify/assert"
|
|
|
|
desc: Use "gotest.tools/v3/assert" instead
|
|
|
|
- pkg: "github.com/stretchr/testify/require"
|
|
|
|
desc: Use "gotest.tools/v3/assert" instead
|
|
|
|
- pkg: "github.com/stretchr/testify/suite"
|
|
|
|
desc: Do not use
|
2022-09-03 21:20:23 +00:00
|
|
|
revive:
|
|
|
|
rules:
|
|
|
|
# FIXME make sure all packages have a description. Currently, there's many packages without.
|
|
|
|
- name: package-comments
|
|
|
|
disabled: true
|
2019-08-06 17:11:25 +00:00
|
|
|
issues:
|
2019-10-14 00:13:32 +00:00
|
|
|
# The default exclusion rules are a bit too permissive, so copying the relevant ones below
|
|
|
|
exclude-use-default: false
|
|
|
|
|
2019-08-06 17:11:25 +00:00
|
|
|
exclude-rules:
|
2022-01-27 23:09:48 +00:00
|
|
|
# We prefer to use an "exclude-list" so that new "default" exclusions are not
|
|
|
|
# automatically inherited. We can decide whether or not to follow upstream
|
|
|
|
# defaults when updating golang-ci-lint versions.
|
|
|
|
# Unfortunately, this means we have to copy the whole exclusion pattern, as
|
|
|
|
# (unlike the "include" option), the "exclude" option does not take exclusion
|
|
|
|
# ID's.
|
|
|
|
#
|
|
|
|
# These exclusion patterns are copied from the default excluses at:
|
2022-07-02 17:20:06 +00:00
|
|
|
# https://github.com/golangci/golangci-lint/blob/v1.46.2/pkg/config/issues.go#L10-L104
|
2022-01-27 23:09:48 +00:00
|
|
|
|
|
|
|
# EXC0001
|
|
|
|
- text: "Error return value of .((os\\.)?std(out|err)\\..*|.*Close|.*Flush|os\\.Remove(All)?|.*print(f|ln)?|os\\.(Un)?Setenv). is not checked"
|
2019-10-14 00:13:32 +00:00
|
|
|
linters:
|
|
|
|
- errcheck
|
2022-01-27 23:09:48 +00:00
|
|
|
# EXC0006
|
|
|
|
- text: "Use of unsafe calls should be audited"
|
|
|
|
linters:
|
|
|
|
- gosec
|
|
|
|
# EXC0007
|
|
|
|
- text: "Subprocess launch(ed with variable|ing should be audited)"
|
2019-10-14 00:13:32 +00:00
|
|
|
linters:
|
|
|
|
- gosec
|
2022-01-27 23:09:48 +00:00
|
|
|
# EXC0008
|
|
|
|
# TODO: evaluate these and fix where needed: G307: Deferring unsafe method "*os.File" on type "Close" (gosec)
|
|
|
|
- text: "(G104|G307)"
|
2019-10-14 00:13:32 +00:00
|
|
|
linters:
|
|
|
|
- gosec
|
2022-01-27 23:09:48 +00:00
|
|
|
# EXC0009
|
|
|
|
- text: "(Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)"
|
2019-10-14 00:13:32 +00:00
|
|
|
linters:
|
|
|
|
- gosec
|
2022-01-27 23:09:48 +00:00
|
|
|
# EXC0010
|
|
|
|
- text: "Potential file inclusion via variable"
|
2019-10-14 00:13:32 +00:00
|
|
|
linters:
|
|
|
|
- gosec
|
2022-01-27 23:09:48 +00:00
|
|
|
|
|
|
|
# Looks like the match in "EXC0007" above doesn't catch this one
|
|
|
|
# TODO: consider upstreaming this to golangci-lint's default exclusion rules
|
|
|
|
- text: "G204: Subprocess launched with a potential tainted input or cmd arguments"
|
2019-10-14 00:13:32 +00:00
|
|
|
linters:
|
|
|
|
- gosec
|
2022-01-27 23:09:48 +00:00
|
|
|
# Looks like the match in "EXC0009" above doesn't catch this one
|
|
|
|
# TODO: consider upstreaming this to golangci-lint's default exclusion rules
|
2021-05-28 00:15:56 +00:00
|
|
|
- text: "G306: Expect WriteFile permissions to be 0600 or less"
|
|
|
|
linters:
|
|
|
|
- gosec
|
2019-10-14 00:13:32 +00:00
|
|
|
|
2019-08-28 16:31:14 +00:00
|
|
|
# Exclude some linters from running on tests files.
|
|
|
|
- path: _test\.go
|
|
|
|
linters:
|
|
|
|
- errcheck
|
|
|
|
- gosec
|
|
|
|
|
2019-10-14 00:11:40 +00: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:
|
2022-07-02 19:51:37 +00:00
|
|
|
- revive
|
2023-07-29 17:07:09 +00:00
|
|
|
# FIXME temporarily suppress these (see https://github.com/gotestyourself/gotest.tools/issues/272)
|
|
|
|
- text: "SA1019: (assert|cmp|is)\\.ErrorType is deprecated"
|
|
|
|
linters:
|
|
|
|
- staticcheck
|
2021-05-31 11:45:56 +00: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
|