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 exhaustive: default-signifies-exhaustive: false funlen: lines: 100 statements: 50 gci: local-prefixes: github.com/golangci/golangci-lint goconst: min-len: 2 min-occurrences: 2 gocritic: enabled-tags: - diagnostic - experimental - opinionated - performance - style disabled-checks: - dupImport # https://github.com/go-critic/go-critic/issues/845 - ifElseChain - octalLiteral - whyNoLint - wrapperFunc gocyclo: min-complexity: 15 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 gosec: settings: exclude: -G204 govet: check-shadowing: false settings: printf: funcs: - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf lll: line-length: 950 maligned: suggest-new: true misspell: # Correct spellings using locale preferences for US or UK. # Setting locale to US will correct the British spelling of 'colour' to 'color'. # Default is to use a neutral variety of English. locale: US ignore-words: - eles 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 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: # todo[kushthedude]: commenting most of the checks as our code can't persist all of the changes, however we can plan further on code-quality after v1.0 release. # - bodyclose # - deadcode - dogsled - errcheck # - exhaustive # - funlen # - goconst # - gocritic # - gocyclo - gofmt - goimports - revive # todo[kusthedude]: restore gosec check, once this issue is resolved https://github.com/golangci/golangci-lint/issues/177 # - gosec # - gomnd # - goprintffuncname # - gosimple - govet # - ineffassign # - interfacer - lll - misspell # - nakedret # - nolintlint # - rowserrcheck # - scopelint - staticcheck # - structcheck - stylecheck - typecheck # - unconvert # - unparam # - unused # - varcheck - whitespace # don't enable: # - asciicheck # - gochecknoglobals # - gocognit # - godot # - godox # - goerr113 # - maligned # - nestif # - prealloc # - testpackage # - wsl issues: # Excluding configuration per-path, per-linter, per-text and per-source exclude-rules: - path: _test\.go linters: - gomnd # https://github.com/go-critic/go-critic/issues/926 - linters: - gocritic text: "unnecessaryDefer:" run: skip-dirs: - test/testdata_etc - internal/cache - internal/renameio - internal/robustio timeout: 5m # golangci.com configuration # https://github.com/golangci/golangci/wiki/Configuration service: golangci-lint-version: 1.45.2 # 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"