run:
  concurrency: 2
  timeout: 10m
linters:
  enable-all: false
  disable-all: true
  enable:
    - depguard
    - errcheck
    - gocritic
    - gocyclo
    - gofmt
    - goimports
    - gomodguard
    - revive
    - gosimple
    - govet
    - ineffassign
    - lll
    - misspell
    - nakedret
    - nolintlint
    - staticcheck
    - typecheck
    - unconvert
    - unparam
    - unused
linters-settings:
  revive:
    rules:
      - name: package-comments
        disabled: true
  depguard:
    list-type: denylist
    include-go-root: true
    packages:
      # The io/ioutil package has been deprecated.
      # https://go.dev/doc/go1.16#ioutil
      - io/ioutil
  gomodguard:
    blocked:
      versions:
        - gotest.tools:
            version: "< 3.0.0"
            reason: "deprecated, pre-modules version"
  gocritic:
    # Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint run` to see all tags and checks.
    # Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags".
    enabled-tags:
      - diagnostic
      - opinionated
      - style
    disabled-checks:
      - paramTypeCombine
      - unnamedResult
      - whyNoLint
  gocyclo:
    min-complexity: 16
  lll:
    line-length: 200
issues:
  # golangci hides some golint warnings (the warning about exported things
  # withtout documentation for example), this will make it show them anyway.
  exclude-use-default: false
  exclude:
    - should not use dot imports