formatters:
  enable:
    - gofmt
    - goimports

  exclusions:
    generated: lax

  settings:
    gofmt:
      simplify: true

    goimports:
      local-prefixes:
        - helm.sh/helm/v4

linters:
  default: none

  enable:
    - depguard
    - dupl
    - gomodguard
    - govet
    - ineffassign
    - misspell
    - nakedret
    - revive
    - staticcheck
    - thelper
    - unused
    - usestdlibvars
    - usetesting

  exclusions:
  
    generated: lax

    presets:
      - comments
      - common-false-positives
      - legacy
      - std-error-handling

    rules:
        # This rule is triggered for packages like 'util'. When changes to those packages
        # occur it triggers this rule. This exclusion enables making changes to existing
        # packages.
        - linters:
            - revive
          text: 'var-naming: avoid meaningless package names'

    warn-unused: true

  settings:
    depguard:
      rules:
        Main:
          deny:
            - pkg: github.com/hashicorp/go-multierror
              desc: "use errors instead"
            - pkg: github.com/pkg/errors
              desc: "use errors instead"

    dupl:
      threshold: 400

    gomodguard:
      blocked:
        modules:
          - github.com/evanphx/json-patch:
              recommendations:
                - github.com/evanphx/json-patch/v5

run:
  timeout: 10m

version: "2"
