linters: enable: - depguard # Checks for dependencies that should not be (re)introduced. See "linter-settings" for further details. # - copyloopvar # Checks for loop variable copies in Go 1.22+ - gofmt - goimports - gosec - ineffassign - misspell - nolintlint - revive - staticcheck - tenv # Detects using os.Setenv instead of t.Setenv since Go 1.17 - unconvert - unused - govet - dupword # Checks for duplicate words in the source code disable: - errcheck issues: include: - EXC0002 max-issues-per-linter: 0 max-same-issues: 0 # Only using / doesn't work due to https://github.com/golangci/golangci-lint/issues/1398. exclude-rules: - path: 'cmd[\\/]containerd[\\/]builtins[\\/]' text: "blank-imports:" - path: 'contrib[\\/]fuzz[\\/]' text: "exported: func name will be used as fuzz.Fuzz" - path: 'archive[\\/]tarheader[\\/]' # conversion is necessary on Linux, unnecessary on macOS text: "unnecessary conversion" - path: 'integration[\\/]client' text: "dot-imports:" - linters: - revive text: "if-return" - linters: - revive text: "empty-block" - linters: - revive text: "superfluous-else" - linters: - revive text: "unused-parameter" - linters: - revive text: "unreachable-code" - linters: - revive text: "redefines-builtin-id" linters-settings: depguard: rules: main: deny: - pkg: github.com/opencontainers/runc desc: We don't want to depend on runc (libcontainer), unless there is no other option; see https://github.com/opencontainers/runc/issues/3028. gosec: # The following issues surfaced when `gosec` linter # was enabled. They are temporarily excluded to unblock # the existing workflow, but still to be addressed by # future works. excludes: - G204 - G305 - G306 - G402 - G404 - G115 nolintlint: allow-unused: true exclude-dirs: - api - cluster - docs - docs/man - releases - test # e2e scripts run: timeout: 8m