--- version: "2" formatters: enable: - gci - gofumpt settings: gci: sections: - standard - prefix(github.com/prometheus-community/elasticsearch_exporter) - default linters: enable: - depguard # TODO(@sysadmind): Enable and fix the issues. # - errorlint - exptostd # TODO(@sysadmind): Enable and fix the issues. # - gocritic # - godot - loggercheck # TODO(@sysadmind): Enable and fix the issues. # - misspell - nilnesserr - nolintlint # TODO(@sysadmind): Enable and fix the issues. # - perfsprint - predeclared - revive - sloglint - testifylint - unconvert - unused - usestdlibvars - whitespace exclusions: rules: # Disable errcheck for test files. - linters: - errcheck path: _test.go # Disable errcheck rule for some specific functions. - linters: - errcheck # Taken from the default exclusions in v1. text: Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*print(f|ln)?|os\.(Un)?Setenv). is not checked settings: revive: rules: # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md - name: blank-imports - name: comment-spacings - name: context-as-argument arguments: # Allow functions with test or bench signatures. - allowTypesBefore: '*testing.T,testing.TB' - name: context-keys-type - name: dot-imports - name: early-return arguments: - "preserveScope" # A lot of false positives: incorrectly identifies channel draining as "empty code block". # See https://github.com/mgechev/revive/issues/386 - name: empty-block disabled: true - name: error-naming - name: error-return - name: error-strings - name: errorf # TODO(@sysadmind): Enable and fix the issues. # - name: exported - name: increment-decrement - name: indent-error-flow arguments: - "preserveScope" - name: package-comments # TODO(beorn7/sysadmind): Currently, we have a lot of missing package doc comments. Maybe we should have them. disabled: true - name: range - name: receiver-naming - name: redefines-builtin-id - name: superfluous-else arguments: - "preserveScope" - name: time-naming # TODO(@sysadmind): Enable and fix the issues. # - name: unexported-return - name: unreachable-code - name: unused-parameter severity: warning disabled: true - name: var-declaration - name: var-naming depguard: rules: main: deny: - pkg: "sync/atomic" desc: "Use go.uber.org/atomic instead of sync/atomic" - pkg: "github.com/stretchr/testify/assert" desc: "Use github.com/stretchr/testify/require instead of github.com/stretchr/testify/assert" - pkg: "github.com/go-kit/kit/log" desc: "Use github.com/go-kit/log instead of github.com/go-kit/kit/log" - pkg: "io/ioutil" desc: "Use corresponding 'os' or 'io' functions instead." - pkg: "regexp" desc: "Use github.com/grafana/regexp instead of regexp" - pkg: "github.com/pkg/errors" desc: "Use 'errors' or 'fmt' instead of github.com/pkg/errors" - pkg: "gzip" desc: "Use github.com/klauspost/compress instead of gzip" - pkg: "zlib" desc: "Use github.com/klauspost/compress instead of zlib" - pkg: "golang.org/x/exp/slices" desc: "Use 'slices' instead." issues: max-issues-per-linter: 0 max-same-issues: 0