forked from temporalio/temporal
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.golangci.yml
125 lines (124 loc) · 3.18 KB
/
.golangci.yml
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
# https://golangci-lint.run/usage/configuration/#config-file
linters:
disable-all: true
enable:
- goerr113
- errcheck
- goimports
# - paralleltest # missing the call to method parallel, but testify does not seem to work well with parallel test: https://github.com/stretchr/testify/issues/187
- revive # revive supersedes golint, which is now archived
- staticcheck
- vet
- forbidigo
- exhaustive
- godox
linters-settings:
godox:
keywords:
- FIXME # marks TODOs that must be fixed before merging
govet:
fieldalignment: 0
forbidigo:
forbid:
- p: time.Sleep
msg: "Please use require.Eventually or assert.Eventually instead unless you've no other option"
- p: ^time\.After$
msg: "time.After may leak resources. Use time.NewTimer instead."
revive:
severity: error
confidence: 0.8
enable-all-rules: true
rules:
# Disabled rules
- name: add-constant
disabled: true
- name: argument-limit
disabled: true
- name: bare-return
disabled: true
- name: banned-characters
disabled: true
- name: bool-literal-in-expr
disabled: true
- name: confusing-naming
disabled: true
- name: empty-lines
disabled: true
- name: error-naming
disabled: true
- name: errorf
disabled: true
- name: exported
disabled: true
- name: file-header
disabled: true
- name: function-length
disabled: true
- name: imports-blacklist
disabled: true
- name: increment-decrement
disabled: true
- name: line-length-limit
disabled: true
- name: max-public-structs
disabled: true
- name: nested-structs
disabled: true
- name: package-comments
disabled: true
- name: string-format
disabled: true
- name: unexported-naming
disabled: true
- name: unexported-return
disabled: true
- name: unused-parameter
disabled: true
- name: unused-receiver
disabled: true
- name: use-any
disabled: true
- name: var-naming
disabled: true
- name: empty-block
disabled: true
- name: flag-parameter
disabled: true
- name: unnecessary-stmt
disabled: true
# Rule tuning
- name: cognitive-complexity
arguments:
- 25
- name: cyclomatic
arguments:
- 25
- name: function-result-limit
arguments:
- 5
- name: unhandled-error
arguments:
- "fmt.*"
- "bytes.Buffer.*"
- "strings.Builder.*"
issues:
exclude-dirs:
- ^api
- ^proto
- ^.git
exclude-rules:
- path-except: _test\.go|tests/.+\.go
text: "time.Sleep"
linters:
- forbidigo
- path: _test\.go|tests/.+\.go
text: "(cyclomatic|cognitive)" # false positives when using subtests
linters:
- revive
- path: _test\.go|tests/.+\.go
linters:
- goerr113 # like err = errors.New("test error")
- path: ^tools\/.+\.go
linters:
- goerr113
- revive