Skip to content

Commit 465fb6d

Browse files
authored
chore: update golangci configuration files to make it more explicit (#1278)
1 parent bd36f66 commit 465fb6d

File tree

2 files changed

+95
-28
lines changed

2 files changed

+95
-28
lines changed

.github/workflows/golangci-lint.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ jobs:
1111
uses: golangci/golangci-lint-action@v2
1212
with:
1313
# Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version.
14-
version: v1.45.2
14+
version: v1.46.2
1515
args: --timeout 5m

.golangci.yml

+94-27
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,102 @@
11
# Golang CI pipeline configuration
22
linters:
3-
disable-all: true
4-
53
# Run golangci-lint linters to see the list of all linters
64
# Please keep them sorted alphabetically
75
enable:
8-
- bodyclose
9-
- deadcode
10-
- depguard
11-
- dogsled
12-
- errcheck
13-
- goconst
14-
- goimports
15-
- golint
16-
- goprintffuncname
17-
# - gosec
18-
- gosimple
19-
- govet
20-
- ineffassign
21-
- misspell
22-
- nakedret
23-
- nolintlint
24-
- rowserrcheck
25-
# - staticcheck
26-
- structcheck
27-
- stylecheck
28-
- typecheck
29-
- unconvert
30-
# - unparam
31-
- varcheck
32-
- whitespace
6+
- asciicheck # Simple linter to check that your code does not contain non-ASCII identifiers [fast: true, auto-fix: false]
7+
- bidichk # Checks for dangerous unicode character sequences [fast: true, auto-fix: false]
8+
- bodyclose # checks whether HTTP response body is closed successfully [fast: false, auto-fix: false]
9+
- deadcode # Finds unused code [fast: false, auto-fix: false]
10+
- decorder # check declaration order and count of types, constants, variables and functions [fast: true, auto-fix: false]
11+
- depguard # Go linter that checks if package imports are in a list of acceptable packages [fast: true, auto-fix: false]
12+
- dogsled # Checks assignments with too many blank identifiers (e.g. x, _, _, _, := f()) [fast: true, auto-fix: false]
13+
- durationcheck # check for two durations multiplied together [fast: false, auto-fix: false]
14+
- errcheck # Errcheck is a program for checking for unchecked errors in go programs. These unchecked errors can be critical bugs in some cases [fast: false, auto-fix: false]
15+
- errchkjson # Checks types passed to the json encoding functions. Reports unsupported types and optionally reports occasions, where the check for the returned error can be omitted. [fast: false, auto-fix: false]
16+
- errname # Checks that sentinel errors are prefixed with the `Err` and error types are suffixed with the `Error`. [fast: false, auto-fix: false]
17+
- execinquery # execinquery is a linter about query string checker in Query function which reads your Go src files and warning it finds [fast: false, auto-fix: false]
18+
- exportloopref # checks for pointers to enclosing loop variables [fast: false, auto-fix: false]
19+
- forbidigo # Forbids identifiers [fast: true, auto-fix: false]
20+
- gci # Gci controls golang package import order and makes it always deterministic. [fast: true, auto-fix: false]
21+
- goconst # Finds repeated strings that could be replaced by a constant [fast: true, auto-fix: false]
22+
- gocyclo # Computes and checks the cyclomatic complexity of functions [fast: true, auto-fix: false]
23+
- gofmt # Gofmt checks whether code was gofmt-ed. By default this tool runs with -s option to check for code simplification [fast: true, auto-fix: true]
24+
- goheader # Checks is file header matches to pattern [fast: true, auto-fix: false]
25+
- goimports # In addition to fixing imports, goimports also formats your code in the same style as gofmt. [fast: true, auto-fix: true]
26+
- gomoddirectives # Manage the use of 'replace', 'retract', and 'excludes' directives in go.mod. [fast: true, auto-fix: false]
27+
- gomodguard # Allow and block list linter for direct Go module dependencies. This is different from depguard where there are different block types for example version constraints and module recommendations. [fast: true, auto-fix: false]
28+
- goprintffuncname # Checks that printf-like functions are named with `f` at the end [fast: true, auto-fix: false]
29+
- gosimple #(megacheck): Linter for Go source code that specializes in simplifying a code [fast: false, auto-fix: false]
30+
- govet #(vet, vetshadow): Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string [fast: false, auto-fix: false]
31+
- grouper # An analyzer to analyze expression groups. [fast: true, auto-fix: false]
32+
- importas # Enforces consistent import aliases [fast: false, auto-fix: false]
33+
- ineffassign # Detects when assignments to existing variables are not used [fast: true, auto-fix: false]
34+
- ireturn # Accept Interfaces, Return Concrete Types [fast: false, auto-fix: false]
35+
- makezero # Finds slice declarations with non-zero initial length [fast: false, auto-fix: false]
36+
- misspell # Finds commonly misspelled English words in comments [fast: true, auto-fix: true]
37+
- nakedret # Finds naked returns in functions greater than a specified function length [fast: true, auto-fix: false]
38+
- noctx # noctx finds sending http request without context.Context [fast: false, auto-fix: false]
39+
- nolintlint # Reports ill-formed or insufficient nolint directives [fast: true, auto-fix: false]
40+
- nosprintfhostport # Checks for misuse of Sprintf to construct a host with port in a URL. [fast: true, auto-fix: false]
41+
- promlinter # Check Prometheus metrics naming via promlint [fast: true, auto-fix: false]
42+
- revive # Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint. [fast: false, auto-fix: false]
43+
- rowserrcheck # checks whether Err of rows is checked successfully [fast: false, auto-fix: false]
44+
- sqlclosecheck # Checks that sql.Rows and sql.Stmt are closed. [fast: false, auto-fix: false]
45+
- structcheck # Finds unused struct fields [fast: false, auto-fix: false]
46+
- stylecheck # Stylecheck is a replacement for golint [fast: false, auto-fix: false]
47+
- tagliatelle # Checks the struct tags. [fast: true, auto-fix: false]
48+
- tenv # tenv is analyzer that detects using os.Setenv instead of t.Setenv since Go1.17 [fast: false, auto-fix: false]
49+
- tparallel # tparallel detects inappropriate usage of t.Parallel() method in your Go test codes [fast: false, auto-fix: false]
50+
- typecheck # Like the front-end of a Go compiler, parses and type-checks Go code [fast: false, auto-fix: false]
51+
- unconvert # Remove unnecessary type conversions [fast: false, auto-fix: false]
52+
- varcheck # Finds unused global variables and constants [fast: false, auto-fix: false]
53+
- whitespace # Tool for detection of leading and trailing whitespace [fast: true, auto-fix: true]
54+
55+
disable:
56+
- containedctx # containedctx is a linter that detects struct contained context.Context field [fast: true, auto-fix: false]
57+
- contextcheck # check the function whether use a non-inherited context [fast: false, auto-fix: false]
58+
- cyclop # checks function and package cyclomatic complexity [fast: false, auto-fix: false]
59+
- dupl # Tool for code clone detection [fast: true, auto-fix: false]
60+
- errorlint # errorlint is a linter for that can be used to find code that will cause problems with the error wrapping scheme introduced in Go 1.13. [fast: false, auto-fix: false]
61+
- exhaustive # check exhaustiveness of enum switch statements [fast: false, auto-fix: false]
62+
- exhaustivestruct #[deprecated]: Checks if all struct's fields are initialized [fast: false, auto-fix: false]
63+
- exhaustruct # Checks if all structure fields are initialized [fast: false, auto-fix: false]
64+
- forcetypeassert # finds forced type assertions [fast: true, auto-fix: false]
65+
- funlen # Tool for detection of long functions [fast: true, auto-fix: false]
66+
- gochecknoglobals # check that no global variables exist [fast: true, auto-fix: false]
67+
- gochecknoinits # Checks that no init functions are present in Go code [fast: true, auto-fix: false]
68+
- gocognit # Computes and checks the cognitive complexity of functions [fast: true, auto-fix: false]
69+
- gocritic # Provides diagnostics that check for bugs, performance and style issues. [fast: false, auto-fix: false]
70+
- godot # Check if comments end in a period [fast: true, auto-fix: true]
71+
- godox # Tool for detection of FIXME, TODO and other comment keywords [fast: true, auto-fix: false]
72+
- goerr113 # Golang linter to check the errors handling expressions [fast: false, auto-fix: false]
73+
- gofumpt # Gofumpt checks whether code was gofumpt-ed. [fast: true, auto-fix: true]
74+
- golint #[deprecated]: Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes [fast: false, auto-fix: false]
75+
- gomnd # An analyzer to detect magic numbers. [fast: true, auto-fix: false]
76+
- gosec #(gas): Inspects source code for security problems [fast: false, auto-fix: false]
77+
- ifshort # Checks that your code uses short syntax for if-statements whenever possible [fast: true, auto-fix: false]
78+
- interfacer #[deprecated]: Linter that suggests narrower interface types [fast: false, auto-fix: false]
79+
- lll # Reports long lines [fast: true, auto-fix: false]
80+
- maintidx # maintidx measures the maintainability index of each function. [fast: true, auto-fix: false]
81+
- maligned #[deprecated]: Tool to detect Go structs that would take less memory if their fields were sorted [fast: false, auto-fix: false]
82+
- nestif # Reports deeply nested if statements [fast: true, auto-fix: false]
83+
- nilerr # Finds the code that returns nil even if it checks that the error is not nil. [fast: false, auto-fix: false]
84+
- nilnil # Checks that there is no simultaneous return of `nil` error and an invalid value. [fast: false, auto-fix: false]
85+
- nlreturn # nlreturn checks for a new line before return and branch statements to increase code clarity [fast: true, auto-fix: false]
86+
- nonamedreturns # Reports all named returns [fast: true, auto-fix: false]
87+
- paralleltest # paralleltest detects missing usage of t.Parallel() method in your Go test [fast: true, auto-fix: false]
88+
- prealloc # Finds slice declarations that could potentially be preallocated [fast: true, auto-fix: false]
89+
- predeclared # find code that shadows one of Go's predeclared identifiers [fast: true, auto-fix: false]
90+
- scopelint #[deprecated]: Scopelint checks for unpinned variables in go programs [fast: true, auto-fix: false]
91+
- staticcheck #(megacheck): Staticcheck is a go vet on steroids, applying a ton of static analysis checks [fast: false, auto-fix: false]
92+
- testpackage # linter that makes you use a separate _test package [fast: true, auto-fix: false]
93+
- thelper # thelper detects golang test helpers without t.Helper() call and checks the consistency of test helpers [fast: false, auto-fix: false]
94+
- unparam # Reports unused function parameters [fast: false, auto-fix: false]
95+
- unused #(megacheck): Checks Go code for unused constants, variables, functions and types [fast: false, auto-fix: false]
96+
- varnamelen # checks that the length of a variable's name matches its scope [fast: false, auto-fix: false]
97+
- wastedassign # wastedassign finds wasted assignment statements. [fast: false, auto-fix: false]
98+
- wrapcheck # Checks that errors returned from external packages are wrapped [fast: false, auto-fix: false]
99+
- wsl # Whitespace Linter - Forces you to use empty lines! [fast: true, auto-fix: false]
33100

34101
linters-settings:
35102
goconst:

0 commit comments

Comments
 (0)