| version: "2" | |
| formatters: | |
| enable: | |
| - gci | |
| - gofumpt | |
| settings: | |
| gci: | |
| sections: | |
| - standard | |
| - default | |
| - prefix(github.com/shirou) | |
| issues: | |
| max-same-issues: 0 | |
| linters: | |
| enable: | |
| - asciicheck | |
| - contextcheck | |
| - durationcheck | |
| - errorlint | |
| - fatcontext | |
| - gocritic | |
| - gomodguard | |
| - gosec | |
| - govet | |
| - importas | |
| - ineffassign | |
| - misspell | |
| - nakedret | |
| - noctx | |
| - nolintlint | |
| - perfsprint | |
| - predeclared | |
| - revive | |
| - staticcheck | |
| - testifylint | |
| - thelper | |
| - unparam | |
| - usetesting | |
| disable: | |
| - errcheck | |
| - unused | |
| settings: | |
| gocritic: | |
| disabled-checks: | |
| - captLocal | |
| - commentedOutCode | |
| - deferInLoop | |
| - hexLiteral | |
| - hugeParam | |
| - tooManyResultsChecker | |
| - unnamedResult | |
| enable-all: true | |
| gomodguard: | |
| blocked: | |
| modules: | |
| - io/ioutil: | |
| recommendations: | |
| - io | |
| - os | |
| gosec: | |
| excludes: | |
| - G115 | |
| govet: | |
| disable: | |
| - copylocks | |
| - fieldalignment | |
| - testinggoroutine | |
| enable-all: true | |
| perfsprint: | |
| # Optimizes even if it requires an int or uint type cast. | |
| int-conversion: true | |
| # Optimizes into `err.Error()` even if it is only equivalent for non-nil errors. | |
| err-error: true | |
| # Optimizes `fmt.Errorf`. | |
| errorf: true | |
| # Optimizes `fmt.Sprintf` with only one argument. | |
| sprintf1: true | |
| # Optimizes into strings concatenation. | |
| strconcat: true | |
| revive: | |
| rules: | |
| - name: blank-imports | |
| - name: context-as-argument | |
| arguments: | |
| - allowTypesBefore: "*testing.T" | |
| - name: context-keys-type | |
| - name: dot-imports | |
| - name: duplicated-imports | |
| - name: early-return | |
| arguments: | |
| - "preserveScope" | |
| - name: empty-block | |
| disabled: true | |
| - name: error-naming | |
| - name: error-return | |
| - name: error-strings | |
| - name: exported | |
| disabled: true | |
| - name: errorf | |
| - name: increment-decrement | |
| - name: indent-error-flow | |
| arguments: | |
| - "preserveScope" | |
| - name: range | |
| - name: receiver-naming | |
| - name: redefines-builtin-id | |
| - name: redundant-import-alias | |
| - name: superfluous-else | |
| arguments: | |
| - "preserveScope" | |
| - name: time-date | |
| - name: time-equal | |
| - name: time-naming | |
| - name: unexported-return | |
| - name: unnecessary-stmt | |
| - name: unreachable-code | |
| - name: unused-parameter | |
| - name: unused-receiver | |
| - name: use-any | |
| - name: var-declaration | |
| - name: var-naming | |
| arguments: | |
| - ["ID"] # AllowList | |
| - ["VM"] # DenyList | |
| - - upperCaseConst: true # Extra parameter (upperCaseConst|skipPackageNameChecks) | |
| skipPackageNameChecks: true | |
| staticcheck: | |
| checks: | |
| - all | |
| - -SA1019 # Using a deprecated function, variable, constant or field | |
| - -SA2002 # Called testing.T.FailNow or SkipNow in a goroutine, which isn’t allowed | |
| - -SA4003 # Comparing unsigned values against negative values is pointless | |
| - -SA4004 # The loop exits unconditionally after one iteration | |
| - -SA4008 # The variable in the loop condition never changes, are you incrementing the wrong variable? | |
| - -SA5003 # Defers in infinite loops will never execute | |
| - -SA9003 # Empty body in an if or else branch | |
| - -ST1003 # Poorly chosen identifier | |
| testifylint: | |
| enable-all: true | |
| usetesting: | |
| os-create-temp: false | |
| os-mkdir-temp: false | |
| exclusions: | |
| generated: lax | |
| presets: | |
| - comments | |
| - common-false-positives | |
| - legacy | |
| - std-error-handling | |
| rules: | |
| - text: 'shadow: declaration of "err" shadows declaration at line' | |
| linters: | |
| - govet | |
| warn-unused: true | |
| output: | |
| show-stats: false | |
| run: | |
| timeout: 5m |