version: "2" formatters: enable: - gci - gofumpt settings: gofumpt: extra-rules: true linters: default: all disable: - cyclop # duplicate of gocyclo - dupl - err113 - exhaustive - exhaustruct - lll - mnd - nilnil - nlreturn - paralleltest - prealloc - rowserrcheck # not relevant (SQL) - sqlclosecheck # not relevant (SQL) - testpackage - tparallel - varnamelen - wrapcheck - wsl settings: depguard: rules: main: deny: - pkg: github.com/instana/testify desc: not allowed - pkg: github.com/pkg/errors desc: Should be replaced by standard lib errors package forbidigo: forbid: - pattern: ^print(ln)?$ - pattern: ^spew\.Print(f|ln)?$ - pattern: ^spew\.Dump$ funlen: lines: -1 statements: 40 goconst: min-len: 3 min-occurrences: 3 gocritic: disabled-checks: - sloppyReassign - rangeValCopy - octalLiteral - paramTypeCombine # already handle by gofumpt.extra-rules enabled-tags: - diagnostic - style - performance settings: hugeParam: sizeThreshold: 100 gocyclo: min-complexity: 12 godox: keywords: - FIXME gomoddirectives: replace-allow-list: - github.com/abbot/go-http-auth - github.com/go-check/check - github.com/gorilla/mux - github.com/mailgun/minheap - github.com/mailgun/multibuf - github.com/jaguilar/vt100 gosec: excludes: - G204 # Subprocess launched with a potential tainted input or cmd arguments - G301 # Expect directory permissions to be 0750 or less - G306 # Expect WriteFile permissions to be 0600 or less govet: disable: - fieldalignment enable-all: true misspell: locale: US exclusions: presets: - comments rules: - linters: - gochecknoglobals - gochecknoinits path: cmd/ - linters: - tagalign path: internal/traefikv[1-3]/ - path: (.+)\.go$ text: 'ST1000: at least one file in a package should have a package comment' - path: (.+)\.go$ text: 'package-comments: should have a package comment' issues: max-issues-per-linter: 0 max-same-issues: 0