linters-settings:
  exhaustive:
    default-signifies-exhaustive: false
  goimports:
    local-prefixes: sigs.k8s.io/external-dns
  maligned:
    suggest-new: true
  misspell:
    locale: US
  revive:
    confusing-naming: false
    ignore-generated-header: true
    rules:
      - name: confusing-naming
        disabled: true

linters:
  # please, do not use `enable-all`: it's deprecated and will be removed soon.
  # inverted configuration with `enable-all` and `disable` is not scalable during updates of golangci-lint
  disable-all: true
  enable:
    - dogsled
    - gofmt
    - goimports
    - goprintffuncname
    - govet
    - ineffassign
    - misspell
    - rowserrcheck
    - typecheck
    - unconvert
    - whitespace
    - revive
    - unused
    - gosimple
    - staticcheck

issues:
  # Excluding configuration per-path, per-linter, per-text and per-source
  exclude-rules:
    - path: _test\.go
      linters:
        - deadcode
        - depguard
        - dogsled
        - gofmt
        - goimports
        - goprintffuncname
        - gosimple
        - govet
        - ineffassign
        - misspell
        - nolintlint
        - rowserrcheck
        - staticcheck
        - structcheck
        - stylecheck
        - typecheck
        - unconvert
        - unused
        - varcheck
        - whitespace
    - path: source/ambassador_host.go
      linters: [ typecheck ]
    - path: source/contour_httpproxy.go
      linters: [ typecheck ]
    - path: source/f5_virtualserver.go
      linters: [ typecheck ]
    - path: source/kong_tcpingress.go
      linters: [ typecheck ]

run:
  skip-files:
    - endpoint/zz_generated.deepcopy.go
