-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy path.golangci.yml
More file actions
135 lines (119 loc) · 2.58 KB
/
.golangci.yml
File metadata and controls
135 lines (119 loc) · 2.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
run:
timeout: 5m
tests: false # Skip test files to avoid mock issues
modules-download-mode: readonly
build-tags:
- integration
skip-dirs:
- vendor
- api/proto
- internal/pkg/testutil
linters-settings:
dupl:
threshold: 100
funlen:
lines: 80
statements: 50
goconst:
min-len: 2
min-occurrences: 3
gocritic:
enabled-tags:
- diagnostic
- style
- performance
disabled-checks:
- dupImport
- ifElseChain
- octalLiteral
- whyNoLint
gocyclo:
min-complexity: 15
goimports:
local-prefixes: vibe-ddd-golang
lll:
line-length: 120
misspell:
locale: US
nolintlint:
allow-unused: false
require-explanation: true
require-specific: true
revive:
rules:
- name: exported
disabled: true
- name: package-comments
disabled: true
linters:
disable-all: true
enable:
- gofmt
- goimports
- misspell
- whitespace
- gocyclo
- funlen
- lll
- nilerr # Finds code that returns nil even if it checks that error is not nil
- nilnil # Checks that there is no simultaneous return of nil error and invalid value
issues:
skip-dirs:
- vendor
- api/proto
- internal/pkg/testutil
skip-files:
- ".*\\.pb\\.go$"
- ".*_gen\\.go$"
- ".*_test\\.go$"
- ".*mock.*\\.go$"
exclude-rules:
# Exclude external dependencies and system Go packages
- path: ".*/go/pkg/mod/.*"
linters:
- all
# Exclude Go toolchain files
- path: ".*toolchain.*"
linters:
- all
# Exclude system packages
- path: ".*/golang\\.org/.*"
linters:
- all
# Exclude vendor files
- path: vendor/
linters:
- all
# Exclude test files
- path: _test\.go
linters:
- all
# Exclude generated files
- path: \.pb\.go$
linters:
- all
# Exclude testutil and mock files
- path: testutil/
linters:
- all
- path: mock.*\.go$
linters:
- all
# Allow long functions in main files
- path: main\.go
linters:
- funlen
# Allow init functions in cmd packages
- path: cmd/
linters:
- gochecknoinits
# Allow longer lines in middleware for header lists
- path: internal/middleware/
linters:
- lll
# Allow longer lines in api setup for gRPC interceptors
- path: internal/api/grpc/
linters:
- lll
max-issues-per-linter: 50
max-same-issues: 3