linters: enable: - deadcode - goimports - golint - gosec - gosimple - govet - ineffassign - misspell - staticcheck - structcheck - typecheck - unconvert - unused - varcheck disable: - errcheck run: concurrency: 2 modules-download-mode: vendor skip-dirs: - bundles - docs # TODO: This package should be completely removed - libnetwork/client/mflag linters-settings: govet: check-shadowing: false issues: # The default exclusion rules are a bit too permissive, so copying the relevant ones below exclude-use-default: false exclude-rules: # 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 - text: "G306: Expect WriteFile permissions to be 0600 or less" linters: - gosec - text: 'G307: Deferring unsafe method "Close" on type "*os.File"' linters: gosec # Exclude some linters from running on tests files. - path: _test\.go linters: - errcheck - gosec # 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 - text: "(G201|G202): SQL string (formatting|concatenation)" linters: - gosec # FIXME: evaluate these and fix where needed: G307: Deferring unsafe method "*os.File" on type "Close" (gosec) - text: "G307: Deferring unsafe method" linters: - gosec # FIXME temporarily suppress these. See #39924 - text: "SA1019: .*\\.Xattrs is deprecated: Use PAXRecords instead" linters: - staticcheck # FIXME temporarily suppress these. See #39926 - text: "SA1019: httputil.NewClientConn" linters: - staticcheck # FIXME temporarily suppress these (related to the ones above) - text: "SA1019: httputil.ErrPersistEOF" linters: - staticcheck # FIXME temporarily suppress these for false positives in tests (see https://github.com/dominikh/go-tools/issues/1022) - text: "SA5011" path: _test\.go linters: - staticcheck # 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 - unused # 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