.golangci.yml RawHistoryFolder
1version: "2"
2
3linters:
4 default: none
5 enable:
6 - bodyclose
7 - copyloopvar
8 - dogsled
9 - dupl
10 - errcheck
11 - errorlint
12 - funlen
13 - gocheckcompilerdirectives
14 - goconst
15 - gocritic
16 - gocyclo
17 # - godox # TODOs/FIXMEs are intentional markers
18 - mnd
19 - goprintffuncname
20 - gosec
21 - govet
22 - ineffassign
23 - lll
24 - misspell
25 - nakedret
26 - nolintlint
27 - revive
28 - staticcheck
29 - testifylint
30 - unconvert
31 - unparam
32 - unused
33 - whitespace
34
35 settings:
36 dupl:
37 threshold: 150
38 funlen:
39 lines: -1
40 statements: 50
41 goconst:
42 min-len: 2
43 min-occurrences: 3
44 gocritic:
45 enabled-tags:
46 - diagnostic
47 - experimental
48 - opinionated
49 - performance
50 - style
51 disabled-checks:
52 - dupImport
53 - ifElseChain
54 - octalLiteral
55 - whyNoLint
56 - unnamedResult
57 - hugeParam
58 - singleCaseSwitch
59 gocyclo:
60 min-complexity: 20
61 mnd:
62 checks:
63 - argument
64 - case
65 - condition
66 - return
67 ignored-numbers:
68 - '0'
69 - '1'
70 - '2'
71 - '3'
72 - '4'
73 - '5'
74 - '10'
75 - '16'
76 - '32'
77 - '64'
78 - '100'
79 - '1000'
80 ignored-functions:
81 - strings.SplitN
82 - make
83 - time.Sleep
84 - time.Duration
85 - strconv.ParseInt
86 - strconv.ParseUint
87 - strconv.ParseFloat
88 govet:
89 enable:
90 - nilness
91 - shadow
92 errorlint:
93 asserts: false
94 lll:
95 line-length: 140
96 misspell:
97 locale: US
98 nolintlint:
99 allow-unused: false
100 require-explanation: true
101 require-specific: true
102 revive:
103 rules:
104 - name: indent-error-flow
105 - name: unused-parameter
106 - name: unused-receiver
107
108 exclusions:
109 generated: lax
110 paths:
111 - vendor
112 rules:
113 # Test files get relaxed rules
114 - path: _test\.go
115 linters:
116 - dupl
117 - mnd
118 - lll
119 - funlen
120 - goconst
121 - errcheck
122 - gosec
123 # Generated SQL code
124 - path: internal/db/.*\.sql\.go
125 linters:
126 - all
127 - path: internal/db/models\.go
128 linters:
129 - unused
130 # gosec false positives
131 - text: "G115:"
132 linters:
133 - gosec
134 - text: "G404:"
135 linters:
136 - gosec
137 - text: "G301:"
138 linters:
139 - gosec
140 - text: "G302:"
141 linters:
142 - gosec
143 - text: "G306:"
144 linters:
145 - gosec
146 - text: "G204:"
147 linters:
148 - gosec
149 - text: "G304:"
150 linters:
151 - gosec
152 - path: internal/bootstrap/session\.go
153 text: "G703:"
154 linters:
155 - gosec
156 - path: internal/infrastructure/updater/github\.go
157 text: "G704:"
158 linters:
159 - gosec
160 # GTK callbacks require unused parameters
161 - path: internal/ui/
162 text: "unused-parameter"
163 linters:
164 - revive
165 - path: internal/ui/
166 text: "unused-receiver"
167 linters:
168 - revive
169 # Adapter structs intentionally keep receivers for interface compliance
170 - path: internal/infrastructure/.*adapter\.go
171 text: "unused-receiver"
172 linters:
173 - revive
174
175run:
176 timeout: 20m
177 modules-download-mode: readonly
178 build-tags:
179 - webkit_cgo