version: "2"
linters:
  default: none
  enable:
    - asciicheck
    - bodyclose
    - copyloopvar
    - dogsled
    - dupl
    - durationcheck
    - errcheck
    - ginkgolinter
    - gocognit
    - goconst
    - gocritic
    - gocyclo
    - goheader
    - gomoddirectives
    - gomodguard_v2
    - goprintffuncname
    - gosec
    - govet
    - importas
    - ineffassign
    - lll
    - makezero
    - misspell
    - nakedret
    - nestif
    - prealloc
    - predeclared
    - revive
    - rowserrcheck
    - sqlclosecheck
    - staticcheck
    - thelper
    - tparallel
    - unconvert
    - unparam
    - unused
    - wastedassign
    - whitespace
  settings:
    lll:
      line-length: 120
  exclusions:
    generated: lax
    rules:
      - linters:
          - revive
        text: should not use dot imports
        source: ginkgo|gomega
      - linters:
          - goconst
        path: _test\.go
      - linters:
          - lll
        source: //\s*\+
      - linters:
          - staticcheck
        path: api/
        text: 'ST1016:'
      - linters:
          - revive
        path: internal/cnpgi/common/
        text: avoid meaningless package names
    paths:
      - zz_generated.*
      - internal/operator/controller/suite_test.go
      - test
      - third_party$
      - builtin$
      - examples$
formatters:
  enable:
    - gci
    - gofmt
    - gofumpt
    - goimports
  settings:
    gci:
      sections:
        - standard
        - default
        - prefix(github.com/cloudnative-pg/plugin-barman-cloud)
        - blank
        - dot
  exclusions:
    generated: lax
    paths:
      - zz_generated.*
      - internal/operator/controller/suite_test.go
      - test
      - third_party$
      - builtin$
      - examples$
