# Copyright 2013-2023 The Cobra Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

version: "2"

run:
  timeout: 5m

formatters:
  enable:
    - gofmt
    - goimports

linters:
  default: none
  enable:
    #- bodyclose
    #- depguard
    #- dogsled
    #- dupl
    - errcheck
    #- exhaustive
    #- funlen
    #- gochecknoinits
    - goconst
    - gocritic
    #- gocyclo
    #- goprintffuncname
    - gosec
    - govet
    - ineffassign
    #- lll
    - misspell
    #- mnd
    #- nakedret
    #- noctx
    - nolintlint
    #- rowserrcheck
    - staticcheck
    - unconvert
    #- unparam
    - unused
    #- whitespace
  exclusions:
    presets:
      - common-false-positives
      - legacy
      - std-error-handling
  settings:
    govet:
      # Disable buildtag check to allow dual build tag syntax (both //go:build and // +build).
      # This is necessary for Go 1.15 compatibility since //go:build was introduced in Go 1.17.
      # This can be removed once Cobra requires Go 1.17 or higher.
      disable:
        - buildtag
