linters-settings: depguard: list-type: blacklist packages: # logging is allowed only by logutils.Log, logrus # is allowed to use only in logutils package # - github.com/sirupsen/logrus packages-with-error-message: # - github.com/sirupsen/logrus: "logging is allowed only by logutils.Log" dupl: threshold: 100 funlen: lines: 200 statements: 100 goconst: min-len: 2 min-occurrences: 3 gocritic: enabled-tags: - diagnostic - experimental - opinionated - performance - style disabled-checks: - dupImport # https://github.com/go-critic/go-critic/issues/845 - ifElseChain - octalLiteral - whyNoLint - wrapperFunc gocognit: # minimal code complexity to report, 30 by default (but we recommend 10-20) min-complexity: 36 gocyclo: min-complexity: 36 goimports: # local-prefixes: github.com/golangci/golangci-lint golint: min-confidence: 0 gomnd: settings: mnd: # don't include the "operation" and "assign" checks: argument,case,condition,return govet: check-shadowing: true settings: printf: funcs: - (github.com/neilotoole/lg.Log).Debugf - (github.com/neilotoole/lg.Log).Warnf - (github.com/neilotoole/lg.Log).Errorf lll: line-length: 180 maligned: suggest-new: true misspell: locale: US linters: # please, do not use `enable-all`: it's deprecated and will be removed soon. # inverted configuration with `enable-all` and `disable` is not scalable during updates of golangci-lint disable-all: true enable: - bodyclose - deadcode - depguard - dogsled - dupl - errcheck - funlen - gochecknoinits - goconst - gocritic - gocyclo - gofmt - goimports - golint #- gomnd - goprintffuncname - gosec - gosimple - govet - ineffassign - interfacer - lll # - misspell - nakedret - rowserrcheck - scopelint - staticcheck - structcheck - stylecheck - typecheck - unconvert - unparam - unused - varcheck - whitespace # - gochecknoglobals - gocognit # - godox - maligned - prealloc issues: # Excluding configuration per-path, per-linter, per-text and per-source exclude-rules: - path: _test\.go linters: - gomnd - lll - maligned - dupl - funlen - linters: - gosec text: "G[202]" run: skip-dirs: - testdata # - internal/cache # - internal/renameio # - internal/robustio # golangci.com configuration # https://github.com/golangci/golangci/wiki/Configuration service: golangci-lint-version: 1.27.x # use the fixed version to not introduce new linters unexpectedly prepare: - echo "here I can run custom commands, but no preparation needed for this repo"