run: timeout: 15m skip-files: # Skip autogenerated files. - ^.*\.(pb|y)\.go$ skip-dirs: # Copied it from a different source - storage/remote/otlptranslator/prometheusremotewrite output: sort-results: true linters: enable: - depguard - errorlint - gocritic - godot - gofumpt - goimports - misspell - nolintlint - predeclared - revive - unconvert - unused issues: max-same-issues: 0 exclude-rules: - linters: - gocritic text: "appendAssign" - path: _test.go linters: - errcheck - path: tsdb/ linters: - errorlint - path: util/ linters: - errorlint - path: web/ linters: - errorlint - linters: - godot source: "^// ===" linters-settings: 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" errcheck: exclude-functions: # Don't flag lines such as "io.Copy(io.Discard, resp.Body)". - io.Copy # The next two are used in HTTP handlers, any error is handled by the server itself. - io.WriteString - (net/http.ResponseWriter).Write # No need to check for errors on server's shutdown. - (*net/http.Server).Shutdown # Never check for logger errors. - (github.com/go-kit/log.Logger).Log # Never check for rollback errors as Rollback() is called when a previous error was detected. - (github.com/prometheus/prometheus/storage.Appender).Rollback goimports: local-prefixes: github.com/prometheus/prometheus gofumpt: extra-rules: true revive: rules: # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unused-parameter - name: unused-parameter severity: warning disabled: true