#
# 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:
    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:
      - shadow
      - 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'
    - 'G115: integer overflow conversion'
  exclude-rules:
    - path: ".*_test.go"
      linters:
        - govet
        - fieldalignment