
linters-settings:
  govet:
    check-shadowing: true
  dupl:
    threshold: 100
  goconst:
    min-len: 2
    min-occurrences: 2
  cyclop:
    max-complexity: 27
  gocognit:
    min-complexity: 50
  gci:
    sections:
      - standard
      - default
      - prefix(github.com/projectcapsule/capsule)
  goheader:
    template: |-
      Copyright 2020-2023 Project Capsule Authors.
      SPDX-License-Identifier: Apache-2.0
  gofumpt:
    module-path: github.com/projectcapsule/capsule
    extra-rules: false
  inamedparam:
    # Skips check for interface methods with only a single parameter.
    # Default: false
    skip-single-param: true
  nakedret:
    # Make an issue if func has more lines of code than this setting, and it has naked returns.
    max-func-lines: 50
linters:
  enable-all: true
  disable:
    - depguard
    - perfsprint
    - funlen
    - gochecknoinits
    - lll
    - exhaustivestruct
    - maligned
    - interfacer
    - scopelint
    - golint
    - gochecknoglobals
    - goerr113
    - gomnd
    - paralleltest
    - ireturn
    - testpackage
    - varnamelen
    - wrapcheck
    - exhaustruct
    - varcheck
    - structcheck
    - nosnakecase
    - deadcode
    - ifshort
    - nonamedreturns

service:
  golangci-lint-version: 1.56.x

run:
  timeout: 3m
  go: '1.21'
  skip-files:
    - "zz_.*\\.go$"
    - ".+\\.generated.go"
    - ".+_test.go"
    - ".+_test_.+.go"
