# More info on config here: https://golangci-lint.run/usage/configuration/#config-file run: concurrency: 8 timeout: 10m issues-exit-code: 1 tests: true output: formats: - format: colored-line-number print-issued-lines: true print-linter-name: true linters-settings: gocyclo: min-complexity: 15 gocognit: min-complexity: 20 govet: enable: - shadow dupl: threshold: 100 goconst: min-len: 2 min-occurrences: 2 linters: disable-all: true enable: # - dupl - it's very slow, enable if you really know why you need it - errcheck - goconst - gocognit - gocyclo - goimports - gosec - govet - ineffassign - gosimple - staticcheck - revive - typecheck - unused # will be used insted of varcheck + deadcode + structcheck. More info https://github.com/golangci/golangci-lint/issues/1841 issues: exclude-dirs: - bin - vendor - var - tmp exclude-files: - \.pb\.go$ - \.pb\.gw\.go$ - \.pb\.scratch\.go$ - \.pb\.goclay\.go$ exclude-use-default: false exclude: # _ instead of err checks - G104 # for "public interface + private struct implementation" cases only! - exported func .* returns unexported type .*, which can be annoying to use # can be removed in the development phase - (comment on exported (method|function|type|const)|should have( a package)? comment|comment should be of the form) # not for the active development - can be removed in the stable phase - should have a package comment - don't use an underscore in package name # EXC0001 errcheck: Almost all programs ignore errors on these functions and in most cases it's ok - Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*print(f|ln)?|os\.(Un)?Setenv). is not checked - should check returned error before deferring