run:
  timeout: 5m

linters-settings:
  govet:
    enable:
      - shadow
  goconst:
    min-len: 2
    min-occurrences: 2
  misspell:
    locale: US
  lll:
    line-length: 140
  gocritic:
    enabled-tags:
      - performance
      - style
      - experimental
    disabled-checks:
      - wrapperFunc
      - hugeParam
      - rangeValCopy
      - singleCaseSwitch
      - ifElseChain

linters:
  enable:
    - staticcheck
    - revive
    - govet
    - unconvert
    - unused
    - gosec
    - gocyclo
    - dupl
    - misspell
    - unparam
    - typecheck
    - ineffassign
    - stylecheck
    - gochecknoinits
    - exportloopref
    - gocritic
    - nakedret
    - gosimple
    - prealloc
  fast: false
  disable-all: true

issues:
  exclude-dirs:
    - vendor
  exclude-rules:
    - text: "at least one file in a package should have a package comment"
      linters:
        - stylecheck
    - text: "should have a package comment"
      linters:
        - revive
    - path: _test\.go
      linters:
        - gosec
        - dupl
    - linters:
        - unparam
        - unused
        - revive
      path: _test\.go$
      text: "unused-parameter"
  exclude-use-default: false

service:
  golangci-lint-version: 1.43.x
