linters:
  enable-all: true
  disable:
    - varnamelen # Useless linter.
    - exhaustive # Stupid linter.
    - ireturn
    - gofumpt
    - nosnakecase # Hates gRPC object.
# Bottom linters from 1.46, but CI use the 1.45.2.
    - execinquery # Not work in v1.46.
    - exhaustruct
    - nosprintfhostport
    - nonamedreturns
    - golint # depricated
    - tagliatelle
linters-settings:
  wrapcheck:
    ignoreSigs:
      - multierr.Combine(
      - multierr.Append(
      - .Errorf(
      - errors.New(
      - errors.Unwrap(
      - .Wrap(
      - .Wrapf(
      - status.Error(
  tagliatelle:
    case:
      use-field-name: true
      rules:
        json: snake
        yaml: kebab
  wsl:
    # See https://github.com/bombsimon/wsl/blob/master/doc/configuration.md for
    # documentation of available settings.
    allow-assign-and-anything: false
    allow-assign-and-call: false
    allow-case-trailing-whitespace: false
    allow-cuddle-declarations: false
    allow-multiline-assign: true
    allow-separated-leading-comment: true
    allow-trailing-comment: false
    force-case-trailing-whitespace: 0
    force-err-cuddling: true
    force-short-decl-cuddling: false
    strict-append: true
  gci:
    local-prefixes: github.com/project/module/name
  godox:
    keywords:
      - BUG
      - FIX
      - FIXME
      - TODO
      - bug
      - fixme
      - todo
      - fix
  gomnd:
    settings:
      mnd:
        checks: [argument,case,condition,operation,return,assign]
        ignored-numbers: [2, 64, 10, 400]
  stylecheck:
    go: "1.19"
    checks: ["all", "-ST1017"] # ST1017 - Yoda
  exhaustive:
    include:
      - '.*\.Config.*'
  exhaustivestruct:
    struct-patterns:
      - '*Config*'
      - '*/*Config*'
      - '*/*/*Config*'
      - '*/*/*/*Config*'
      - '*/*/*/*/*Config*'
      - '*/*/*/*/*/*Config*'
      - '*/*/*/*/*/*/*Config*'
      - '*/*/*/*/*/*/*/*Config*'
      - '*/*/*/*/*/*/*/*/*Config*'
      - '*/*/*/*/*/*/*/*/*/*Config*'
      - '*/*/*/*/*/*/*/*/*/*/*Config*'
      - '*/*/*/*/*/*/*/*/*/*/*/*Config*'
      - '*/*/*/*/*/*/*/*/*/*/*/*/*Config*'
      - '*/*/*/*/*/*/*/*/*/*/*/*/*/*Config*'
      - '*/*/*/*/*/*/*/*/*/*/*/*/*/*/*Config*'
      - '*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*Config*'
      - '*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*Config*'
      - '*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*Config*'
      - '*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*Config*'
run:
  skip-dirs:
    - sandbox
