run: skip-files: # Skip autogenerated files. - ^.*\.(pb|y)\.go$ timeout: 5m output: sort-results: true linters: enable: - depguard - errorlint - gofumpt - goimports - revive - misspell issues: max-issues-per-linter: 0 max-same-issues: 0 exclude-rules: - path: _test.go linters: - errcheck 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: github.com/pkg/errors desc: "Use errors or fmt instead of github.com/pkg/errors" 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/alertmanager gofumpt: extra-rules: true revive: rules: - name: exported arguments: ["disableStutteringCheck"] - name: blank-imports - name: context-as-argument - name: error-return - name: error-strings - name: error-naming - name: if-return - name: increment-decrement - name: var-naming - name: var-declaration - name: package-comments - name: range - name: receiver-naming - name: time-naming - name: unexported-return - name: indent-error-flow - name: errorf