# Options for analysis running.
run:
  # The default concurrency value is the number of available CPU.
  concurrency: 4
  # Timeout for analysise.g. 30s5m.
  # Default: 1m
  timeout: 5m
  # Exit code when at least one issue was found.
  # Default: 1
  issues-exit-code: 2
  # Include test files or not.
  # Default: true
  tests: false
  # List of build tagsall linters use it.
  # Default: [].
  build-tags:
    - mytag
  # Which dirs to skip: issues from them won't be reported.
  # Can use regexp here: `generated.*`regexp is applied on full path.
  # Default value is empty list,
  # but default dirs are skipped independently of this option's value (see skip-dirs-use-default).
  # "/" will be replaced by current OS file path separator to properly work on Windows.
  skip-dirs: []
  # Enables skipping of directories:
  # - vendor$third_party$testdata$examples$Godeps$builtin$
  # Default: true
  skip-dirs-use-default: false
  # Which files to skip: they will be analyzedbut issues from them won't be reported.
  # Default value is empty list,
  # but there is no need to include all autogenerated files,
  # we confidently recognize autogenerated files.
  # If it's not please let us know.
  # "/" will be replaced by current OS file path separator to properly work on Windows.
  skip-files:
    - "_test.go$"
  # If set we pass it to "go list -mod={option}". From "go help modules":
  # If invoked with -mod=readonlythe go command is disallowed from the implicit
  # automatic updating of go.mod described above. Insteadit fails when any changes
  # to go.mod are needed. This setting is most useful to check that go.mod does
  # not need updatessuch as in a continuous integration and testing system.
  # If invoked with -mod=vendorthe go command assumes that the vendor
  # directory holds the correct copies of dependencies and ignores
  # the dependency descriptions in go.mod.
  #
  # Allowed values: readonly|vendor|mod
  # By defaultit isn't set.
  modules-download-mode: readonly
  # Allow multiple parallel golangci-lint instances running.
  # If false (default) - golangci-lint acquires file lock on start.
  allow-parallel-runners: false
  # Define the Go version limit.
  # Mainly related to generics support in go1.18.
  # Default: use Go version from the go.mod filefallback on the env var `GOVERSION`fallback on 1.17
  go: '1.18'

linters:
  enable-all: true
  # Disable specific linter
  # https://golangci-lint.run/usage/linters/#disabled-by-default-linters--e--enable
  disable:
    - exhaustivestruct
    - errname
    - exhaustive
    - gochecknoinits
    - golint
    - goconst
    - interfacer
    - maligned
    - scopelint
    - golint
    - cyclop
    - lll
    - gosec
    - dupl
    - prealloc
    - bodyclose
    - gomnd
    - testpackage
    - tparallel
    - wrapcheck
    - ireturn
    - goerr113
    - wsl
    - varnamelen
    - nlreturn
    - godot
    - revive
    - exhaustruct
    - interfacebloat
    - varcheck
    - ifshort
    - nosnakecase
    - deadcode
    - structcheck
    - rowserrcheck
    - wastedassign
issues:
  exclude-rules:
    - path: pkg/api/json.go|pkg/schema/schema.go
      linters:
        - gochecknoglobals
    - path: pkg/testtool/spec.go
      linters:
        - "stylecheck"
    - path: pkg/testtool/spec.go
      linters:
        - gci
    - path: pkg/apis/dpf/v1/lb_domains/monitoring.go
      linters:
        - musttag
linters-settings:
  stylecheck:
    checks: ["all", "-ST1000", "-ST1003", "-ST1016", "-ST1020", "-ST1021", "-ST1022"]
