run: tests: true output: print-issued-lines: false linters: enable-all: true disable: - lll - gochecknoglobals - wsl - funlen - gocognit - goprintffuncname - paralleltest - nlreturn - testpackage - wrapcheck - forbidigo - gci - godot - gofumpt - cyclop - errorlint - nestif - tagliatelle - thelper - godox - goconst - varnamelen - ireturn - exhaustruct - nonamedreturns - nilnil - depguard # nothing to guard against yet - tagalign # hurts readability of kong tags - tenv # deprecated since v1.64, but not removed yet - mnd - perfsprint - err113 - copyloopvar - intrange - nakedret - recvcheck # value receivers are intentionally used for copies linters-settings: govet: # These govet checks are disabled by default, but they're useful. enable: - niliness - sortslice - unusedwrite dupl: threshold: 100 gocyclo: min-complexity: 20 exhaustive: default-signifies-exhaustive: true issues: max-per-linter: 0 max-same: 0 exclude-use-default: false exclude: - '^(G104|G204):' # Very commonly not checked. - 'Error return value of .(.*\.Help|.*\.MarkFlagRequired|(os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked' - 'exported method (.*\.MarshalJSON|.*\.UnmarshalJSON) should have comment or be unexported' - 'composite literal uses unkeyed fields' - 'bad syntax for struct tag key' - 'bad syntax for struct tag pair' - 'result .* \(error\) is always nil' - 'Error return value of `fmt.Fprintln` is not checked' exclude-rules: # Don't warn on unused parameters. # Parameter names are useful for documentation. # Replacing them with '_' hides useful information. - linters: [revive] text: 'unused-parameter: parameter \S+ seems to be unused, consider removing or renaming it as _' # Duplicate words are okay in tests. - linters: [dupword] path: _test\.go