linters-settings:
  funlen:
    lines: 90
  varnamelen:
    max-distance: 25
    ignore-names:
      - id
      - ip
      - i
      - db
      - ok
      - to
      - b
    ignore-decls:
      v1 *gin.RouterGroup
  #errcheck:
    # path to a file containing a list of functions to exclude from checking
    # see https://github.com/kisielk/errcheck#excluding-functions for details
    #exclude-functions: tools/check/errcheck_excludes.txt
  dupl:
    threshold: 100
  goconst:
    min-len: 2
    min-occurrences: 7
  misspell:
    locale: US
    ignore-words:
      - cancelled
      - marshalling


linters:
  enable-all: true
  disable:
    - errcheck # Revive already check this and his exclude list works well
    - gomoddirectives
    - prealloc
    - godot
    - godox
    - unused
    - gci     # Already checked golangci semms to be using an old version
    - forbidigo # We are using the fmt Print functions in scripts
    - exhaustruct
    - nonamedreturns # Sometimes named returns are useful as they serve as documentation
    - rowserrcheck # is disabled because of generics
    - sqlclosecheck # is disabled because of generics
    - wastedassign # is disabled because of generics
    - contextcheck # Causes timeout
    - exhaustive # Causes timeout
    - gosimple # Causes timeout
    - govet # Causes timeout
    - staticcheck # Causes timeout
    - gocritic
    - tagalign
    - depguard
    - musttag
    - err113
    - interfacebloat
    - lll # revive linter is already checking this
    - gocyclo # revive linter is already checking this
    - cyclop # revive linter is already checking this
    - gocognit # revive linter is already checking this
    - maintidx # revive linter is already checking this
    - gosec # gosec linter is already checking this
    - gochecknoinits
    - wsl # check style only
    - whitespace # check whitespaces only
    - exportloopref # Deprecated
    - mnd

run:
  issues.exclude-dirs:
    - data
    - out
    - doc
    - snap
    - vendor

issues:
  exclude-rules:
    - text: "weak cryptographic primitive"
      linters:
        - gosec
