version: "2"
linters:
  enable:
    - asasalint
    - asciicheck
    - bidichk
    - bodyclose
    - containedctx
    - copyloopvar
    - decorder
    - dogsled
    - dupword
    - durationcheck
    - errchkjson
    - errorlint
    - forcetypeassert
    - ginkgolinter
    - gocheckcompilerdirectives
    - gocognit
    - goconst
    - gocyclo
    - goheader
    - gomoddirectives
    - gomodguard
    - goprintffuncname
    - importas
    - inamedparam
    - ireturn
    - loggercheck
    - makezero
    - mirror
    - misspell
    - nakedret
    - nolintlint
    - nonamedreturns
    - nosprintfhostport
    - predeclared
    - reassign
    - revive
    - tagalign
    - testableexamples
    - testifylint
    - thelper
    - unconvert
    - unparam
    - usestdlibvars
    - usetesting
    - wastedassign
  settings:
    gocyclo:
      min-complexity: 25
    misspell:
      locale: US
  exclusions:
    generated: lax
    presets:
      - comments
      - common-false-positives
      - legacy
      - std-error-handling
    rules:
      - path: ca/ca.go
        text: type name will be used as ca.CAImpl by other packages, and that stutters; consider calling this Impl
      - path: va/va.go
        text: type name will be used as va.VAImpl by other packages, and that stutters; consider calling this Impl
      - path: wfe/wfe.go
        text: if` block ends with a `return` statement, so drop this `else` and outdent its block
      - linters:
          - goconst
        path: va/va.go
        text: string `Incorrect validation certificate for %s challenge. ` has \d occurrences, make it a constant
      - path: (.+)\.go$
        text: fmt.Sprintf can be replaced with string
    paths:
      - third_party$
      - builtin$
      - examples$
issues:
  max-issues-per-linter: 0
  max-same-issues: 0
formatters:
  enable:
    - gofmt
    - gofumpt
    - goimports
  exclusions:
    generated: lax
    paths:
      - third_party$
      - builtin$
      - examples$
