linters-settings:
  gofmt:
    # Simplify code: gofmt with `-s` option.
    # Default: true
    simplify: false
  misspell:
    locale: US,UK
  goimports:
    local-prefixes: github.com/goharbor/harbor
  stylecheck:
    checks: [
      "ST1019",  # Importing the same package multiple times.
    ]
  goheader:
    template-path: copyright.tmpl

linters:
  disable-all: true
  enable:
    - gofmt
    - goheader
    - misspell
    - typecheck
    # - dogsled
    # - dupl
    # - depguard
    # - funlen
    # - goconst
    # - gocritic
    # - gocyclo
    # - goimports
    # - goprintffuncname
    - ineffassign
    # - nakedret
    # - nolintlint
    - revive
    - whitespace
    - bodyclose
    - errcheck
    # - gosec
    - gosimple
    - goimports
    - govet
    # - noctx
    # - rowserrcheck
    - staticcheck
    - stylecheck
    # - unconvert
    # - unparam
    # - unused  // disabled due to too many false positive check and limited support golang 1.19 https://github.com/dominikh/go-tools/issues/1282
 
run:
  skip-files:
    - ".*_test.go"
    - ".*test.go"
  skip-dirs:
    - "testing"
  timeout: 20m

issue:
  max-same-issues: 0
  max-per-linter: 0

issues:
  # Excluding configuration per-path, per-linter, per-text and per-source
  exclude-rules:
    # Exclude some linters from running on tests files.
    - path: _test\.go
      linters:
        - goimports
    - path: src/testing/*.go
      linters:
        - goimports
    - path: src/jobservice/mgt/mock_manager.go
      linters:
        - goimports
