#
# Copyright 2023-present Open Networking Foundation
# 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.
#

linters-settings:
  govet:
    check-shadowing: true
    settings:
      printf:
        funcs:
          - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof
          - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf
          - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf
          - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf
    enable:
      - fieldalignment

  golint:
    min-confidence: 0

  gocyclo:
    min-complexity: 30

  misspell:
    locale: US

linters:
  disable-all: true
  enable:
     - govet
     - errcheck
     - goconst
     - gofmt
     - whitespace
     - goimports
     - gosimple
     - ineffassign
     - gocyclo
     - misspell
     - staticcheck
     - unused
     - gosec

run:
  issues-exit-code: 1
  timeout: 10m
  skip-files:
    - _test\.go$
  skip-dirs:
    - voltha-go-controller/tests/mocks
    - internal/test/mocks

# golangci.com configuration
# https://github.com/golangci/golangci/wiki/Configuration
service:
  golangci-lint-version: 1.61.0 # use the fixed version to not introduce new linters unexpectedly
  prepare:
    - echo "here I can run custom commands, but no preparation needed for this repo"
issues:
   exclude:
     - 'G114: Use of net/http serve function that has no support for setting timeouts'
