# Copyright (c) The OpenTofu Authors # SPDX-License-Identifier: MPL-2.0 # Copyright (c) 2023 HashiCorp, Inc. # SPDX-License-Identifier: MPL-2.0 run: timeout: 30m linters-settings: errcheck: check-type-assertions: true exhaustive: check: - switch - map funlen: lines: 100 statements: 50 ignore-comments: true govet: enable-all: true disable: - fieldalignment # rule is too strict nolintlint: require-explanation: true require-specific: true cyclop: max-complexity: 20 gocognit: min-complexity: 50 goconst: ignore-tests: true # Is documented to be the default behaviour, but that doesn't seem to be the case gocritic: settings: ifElseChain: minThreshold: 4 nestif: min-complexity: 6 issues: exclude-rules: - path: (.+)_test.go linters: - funlen - dupl - revive - gocognit - cyclop - path: (.+)_test.go text: "ST1003" - path: (.+)_test.go text: "var-naming: don't use underscores in Go names" linters: disable-all: true enable: - asasalint - asciicheck - bidichk - bodyclose - cyclop - dupl - durationcheck - errcheck - errname - errorlint - exhaustive - exportloopref - forbidigo - funlen - gocheckcompilerdirectives - gochecknoglobals - gochecknoinits - gocognit - goconst - gocritic - gocyclo - goimports #- gomoddirectives Disabled while we deal with the HCL fork - gomodguard - goprintffuncname - gosec - gosimple - govet - ineffassign - loggercheck - makezero - mirror - mnd - musttag - nakedret - nestif - nilerr - nilnil - noctx - nolintlint - nonamedreturns - nosprintfhostport - predeclared - promlinter - reassign - revive - rowserrcheck - sqlclosecheck - staticcheck - stylecheck - tenv - testableexamples - tparallel - typecheck - unconvert - unparam - unused - usestdlibvars - wastedassign - whitespace