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

output:
  sort-results: true

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

issues:
  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"
  errcheck:
    exclude: scripts/errcheck_excludes.txt
  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: dot-imports
      - 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
