linters-settings: dupl: threshold: 100 funlen: lines: 100 statements: 50 goconst: min-len: 2 min-occurrences: 3 gocritic: enabled-tags: - diagnostic - experimental - opinionated - performance - style disabled-checks: - dupImport - ifElseChain - octalLiteral - whyNoLint - wrapperFunc - exitAfterDefer - paramTypeCombine gocyclo: min-complexity: 15 goimports: local-prefixes: bookstairs lll: line-length: 120 misspell: locale: US nolintlint: allow-leading-space: true # don't require machine-readable nolint directives (i.e. with no leading space) allow-unused: false # report any unused nolint directives require-explanation: false # don't require an explanation for nolint directives require-specific: false # don't require nolint directives to be specific about which linter is being skipped gosec: excludes: - G107 - G401 - G501 - G306 depguard: rules: main: # Packages that are not allowed where the value is a suggestion. deny: - pkg: "github.com/sirupsen/logrus" desc: not allowed - pkg: "github.com/pkg/errors" desc: Should be replaced by standard lib errors package linters: disable-all: true ## https://github.com/golangci/golangci-lint/issues/2649 enable: - bodyclose - depguard - dogsled - dupl - errcheck - exportloopref - funlen - goconst - gocritic - gocyclo - gofmt - goimports - goprintffuncname - gosec - gosimple - govet - ineffassign - lll - misspell - nakedret - noctx - nolintlint - staticcheck - stylecheck - typecheck - unconvert - unparam - unused - whitespace run: timeout: 5m skip-dirs: - .github - docker - scripts - tools - web