| # WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY |
| # |
| # The original version of this file is located in the https://github.com/istio/common-files repo. |
| # If you're looking at this file in a different repo and want to make a change, please go to the |
| # common-files repo, make the change there and check it in. Then come back to this repo and run |
| # "make update-common". |
| |
| service: |
| # When updating this, also update the version stored in docker/build-tools/Dockerfile in the istio/tools repo. |
| golangci-lint-version: 1.38.x # use the fixed version to not introduce new linters unexpectedly |
| run: |
| # timeout for analysis, e.g. 30s, 5m, default is 1m |
| deadline: 20m |
| build-tags: |
| - integ |
| - integfuzz |
| # which dirs to skip: they won't be analyzed; |
| # can use regexp here: generated.*, regexp is applied on full path; |
| # default value is empty list, but next dirs are always skipped independently |
| # from this option's value: |
| # vendor$, third_party$, testdata$, examples$, Godeps$, builtin$ |
| skip-dirs: |
| - genfiles$ |
| - vendor$ |
| |
| # which files to skip: they will be analyzed, but issues from them |
| # won't be reported. Default value is empty list, but there is |
| # no need to include all autogenerated files, we confidently recognize |
| # autogenerated files. If it's not please let us know. |
| skip-files: |
| - ".*\\.pb\\.go" |
| - ".*\\.gen\\.go" |
| |
| linters: |
| disable-all: true |
| enable: |
| - deadcode |
| - errcheck |
| - exportloopref |
| - gocritic |
| - gofumpt |
| - goimports |
| - revive |
| - gosimple |
| - govet |
| - ineffassign |
| - lll |
| - misspell |
| - staticcheck |
| - structcheck |
| - stylecheck |
| - typecheck |
| - unconvert |
| - unparam |
| - varcheck |
| fast: false |
| |
| linters-settings: |
| errcheck: |
| # report about not checking of errors in type assetions: `a := b.(MyStruct)`; |
| # default is false: such cases aren't reported by default. |
| check-type-assertions: false |
| |
| # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; |
| # default is false: such cases aren't reported by default. |
| check-blank: false |
| govet: |
| # report about shadowed variables |
| check-shadowing: false |
| goimports: |
| # put imports beginning with prefix after 3rd-party packages; |
| # it's a comma-separated list of prefixes |
| local-prefixes: istio.io/ |
| maligned: |
| # print struct with more effective memory layout or not, false by default |
| suggest-new: true |
| misspell: |
| # Correct spellings using locale preferences for US or UK. |
| # Default is to use a neutral variety of English. |
| # Setting locale to US will correct the British spelling of 'colour' to 'color'. |
| locale: US |
| ignore-words: |
| - cancelled |
| lll: |
| # max line length, lines longer will be reported. Default is 120. |
| # '\t' is counted as 1 character by default, and can be changed with the tab-width option |
| line-length: 160 |
| # tab width in spaces. Default to 1. |
| tab-width: 1 |
| revive: |
| ignore-generated-header: false |
| severity: "warning" |
| confidence: 0.0 |
| error-code: 2 |
| warning-code: 1 |
| rules: |
| - name: blank-imports |
| - name: context-keys-type |
| - name: time-naming |
| - name: var-declaration |
| - name: unexported-return |
| - name: errorf |
| - name: context-as-argument |
| - name: dot-imports |
| - name: error-return |
| - name: error-strings |
| - name: error-naming |
| - name: increment-decrement |
| - name: var-naming |
| - name: package-comments |
| - name: range |
| - name: receiver-naming |
| - name: indent-error-flow |
| - name: superfluous-else |
| - name: modifies-parameter |
| - name: unreachable-code |
| - name: struct-tag |
| - name: constant-logical-expr |
| - name: bool-literal-in-expr |
| - name: redefines-builtin-id |
| - name: imports-blacklist |
| - name: range-val-in-closure |
| - name: range-val-address |
| - name: waitgroup-by-value |
| - name: atomic |
| - name: call-to-gc |
| - name: duplicated-imports |
| - name: string-of-int |
| - name: defer |
| arguments: [["call-chain"]] |
| - name: unconditional-recursion |
| - name: identical-branches |
| # the following rules can be enabled in the future |
| # - name: empty-lines |
| # - name: confusing-results |
| # - name: empty-block |
| # - name: get-return |
| # - name: confusing-naming |
| # - name: unexported-naming |
| # - name: early-return |
| # - name: unused-parameter |
| # - name: unnecessary-stmt |
| # - name: deep-exit |
| # - name: import-shadowing |
| # - name: modifies-value-receiver |
| # - name: unused-receiver |
| # - name: bare-return |
| # - name: flag-parameter |
| # - name: unhandled-error |
| # - name: if-return |
| unused: |
| # treat code as a program (not a library) and report unused exported identifiers; default is false. |
| # XXX: if you enable this setting, unused will report a lot of false-positives in text editors: |
| # if it's called for subdir of a project it can't find funcs usages. All text editor integrations |
| # with golangci-lint call it on a directory with the changed file. |
| check-exported: false |
| unparam: |
| # call graph construction algorithm (cha, rta). In general, use cha for libraries, |
| # and rta for programs with main packages. Default is cha. |
| algo: cha |
| |
| # Inspect exported functions, default is false. Set to true if no external program/library imports your code. |
| # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: |
| # if it's called for subdir of a project it can't find external interfaces. All text editor integrations |
| # with golangci-lint call it on a directory with the changed file. |
| check-exported: false |
| gocritic: |
| enabled-checks: |
| - appendCombine |
| - argOrder |
| - assignOp |
| - badCond |
| - boolExprSimplify |
| - builtinShadow |
| - captLocal |
| - caseOrder |
| - codegenComment |
| - commentedOutCode |
| - commentedOutImport |
| - defaultCaseOrder |
| - deprecatedComment |
| - docStub |
| - dupArg |
| - dupBranchBody |
| - dupCase |
| - dupSubExpr |
| - elseif |
| - emptyFallthrough |
| - equalFold |
| - flagDeref |
| - flagName |
| - hexLiteral |
| - indexAlloc |
| - initClause |
| - methodExprCall |
| - nilValReturn |
| - octalLiteral |
| - offBy1 |
| - rangeExprCopy |
| - regexpMust |
| - sloppyLen |
| - stringXbytes |
| - switchTrue |
| - typeAssertChain |
| - typeSwitchVar |
| - typeUnparen |
| - underef |
| - unlambda |
| - unnecessaryBlock |
| - unslice |
| - valSwap |
| - weakCond |
| |
| # Unused |
| # - yodaStyleExpr |
| # - appendAssign |
| # - commentFormatting |
| # - emptyStringTest |
| # - exitAfterDefer |
| # - ifElseChain |
| # - hugeParam |
| # - importShadow |
| # - nestingReduce |
| # - paramTypeCombine |
| # - ptrToRefParam |
| # - rangeValCopy |
| # - singleCaseSwitch |
| # - sloppyReassign |
| # - unlabelStmt |
| # - unnamedResult |
| # - wrapperFunc |
| |
| issues: |
| # List of regexps of issue texts to exclude, empty list by default. |
| # But independently from this option we use default exclude patterns, |
| # it can be disabled by `exclude-use-default: false`. To list all |
| # excluded by default patterns execute `golangci-lint run --help` |
| exclude: |
| - composite literal uses unkeyed fields |
| |
| exclude-rules: |
| # Exclude some linters from running on test files. |
| - path: _test\.go$|^tests/|^samples/ |
| linters: |
| - errcheck |
| - maligned |
| |
| # TODO(https://github.com/dominikh/go-tools/issues/732) remove this once we update |
| - linters: |
| - staticcheck |
| text: "SA1019: package github.com/golang/protobuf" |
| |
| # Independently from option `exclude` we use default exclude patterns, |
| # it can be disabled by this option. To list all |
| # excluded by default patterns execute `golangci-lint run --help`. |
| # Default value for this option is true. |
| exclude-use-default: true |
| |
| # Maximum issues count per one linter. Set to 0 to disable. Default is 50. |
| max-per-linter: 0 |
| |
| # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. |
| max-same-issues: 0 |