run: timeout: 10m allow-parallel-runners: true issues: # Maximum issues count per one linter. Set to 0 to disable. Default is 50. max-issues-per-linter: 0 # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. max-same-issues: 0 linters: disable-all: true enable: - asasalint - asciicheck - bidichk - bodyclose - contextcheck - decorder - dogsled - dupl - durationcheck - errcheck - errchkjson - errname - ginkgolinter - gocheckcompilerdirectives - goconst - gocritic - gocyclo - godox - gofmt - gofumpt - goheader - goimports - gomoddirectives - gomodguard - goprintffuncname - gosec - gosimple - govet - grouper - importas - ineffassign - loggercheck - makezero - misspell - musttag - nakedret - nolintlint - nosprintfhostport - prealloc - predeclared - promlinter - reassign - revive - rowserrcheck - sqlclosecheck - staticcheck - stylecheck - tenv - testableexamples - typecheck - unconvert - unparam - unused - usestdlibvars - whitespace # - containedctx # - cyclop # - dupword # - errorlint # - exhaustive # - exhaustruct # - exportloopref # - forbidigo # - forcetypeassert # - funlen # - gci # - gochecknoglobals # - gochecknoinits # - gocognit # - godot # - goerr113 # - gomnd # - interfacebloat # - ireturn # - lll # - maintidx # - nestif # - nilerr # - nilnil # - nlreturn # - noctx # - nonamedreturns # - paralleltest # - tagliatelle # - testpackage # - thelper # - tparallel # - varnamelen # - wastedassign # - wrapcheck # - wsl linters-settings: gocyclo: min-complexity: 40 godox: keywords: - BUG - FIXME - HACK errcheck: check-type-assertions: true check-blank: true gocritic: enabled-checks: # Diagnostic - appendAssign - argOrder - badCall - badCond - badLock - badRegexp - badSorting - builtinShadowDecl - caseOrder - codegenComment - commentedOutCode - deferInLoop - deprecatedComment - dupArg - dupBranchBody - dupCase - dupSubExpr - dynamicFmtString - emptyDecl - evalOrder - exitAfterDefer - externalErrorReassign - filepathJoin - flagDeref - flagName - mapKey - nilValReturn - offBy1 - regexpPattern - returnAfterHttpError - sloppyReassign - sloppyTypeAssert - sortSlice - sprintfQuotedString - sqlQuery - syncMapLoadAndDelete - truncateCmp - unnecessaryDefer - weakCond # Performance - appendCombine - equalFold - hugeParam - indexAlloc - preferDecodeRune - preferFprint - preferStringWriter - preferWriteByte - rangeExprCopy - rangeValCopy - sliceClear - stringXbytes # Style - assignOp - boolExprSimplify - captLocal - commentFormatting - commentedOutImport - defaultCaseOrder - deferUnlambda - docStub - dupImport - elseif - emptyFallthrough - emptyStringTest - exposedSyncMutex - hexLiteral - httpNoBody - ifElseChain - methodExprCall - newDeref - octalLiteral - preferFilepathJoin - redundantSprint - regexpMust - regexpSimplify - ruleguard - singleCaseSwitch - sloppyLen - stringConcatSimplify - stringsCompare - switchTrue - timeExprSimplify - tooManyResultsChecker - typeAssertChain - typeDefFirst - typeSwitchVar - underef - unlabelStmt - unlambda - unslice - valSwap - whyNoLint - wrapperFunc - yodaStyleExpr # Opinionated - builtinShadow - importShadow - initClause - nestingReduce - paramTypeCombine - ptrToRefParam - typeUnparen - unnamedResult - unnecessaryBlock nolintlint: # Enable to ensure that nolint directives are all used. Default is true. allow-unused: false # Exclude following linters from requiring an explanation. Default is []. allow-no-explanation: [] # Enable to require an explanation of nonzero length after each nolint directive. Default is false. # TODO(lint): Enforce explanations for `nolint` directives require-explanation: false # Enable to require nolint directives to mention the specific linter being suppressed. Default is false. require-specific: true