run:
  deadline: 5m
  skip-files:
    # Skip autogenerated files.
    - ^.*\.(pb|y)\.go$

output:
  sort-results: true

linters:
  enable:
    - depguard
    - gofumpt
    - goimports
    - revive
    - misspell

issues:
  max-same-issues: 0
  exclude-rules:
    - path: _test.go
      linters:
        - errcheck

linters-settings:
  depguard:
    list-type: blacklist
    include-go-root: true
    packages-with-error-message:
      - sync/atomic: "Use go.uber.org/atomic instead of sync/atomic"
      - github.com/stretchr/testify/assert: "Use github.com/stretchr/testify/require instead of github.com/stretchr/testify/assert"
      - github.com/go-kit/kit/log: "Use github.com/go-kit/log instead of github.com/go-kit/kit/log"
      - io/ioutil: "Use corresponding 'os' or 'io' functions instead."
      - regexp: "Use github.com/grafana/regexp instead of regexp"
  errcheck:
    exclude: scripts/errcheck_excludes.txt
  goimports:
    local-prefixes: github.com/prometheus/prometheus
  gofumpt:
    extra-rules: true
