-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy path.golangci.yml
More file actions
131 lines (124 loc) · 2.94 KB
/
.golangci.yml
File metadata and controls
131 lines (124 loc) · 2.94 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
run:
# Avoid false positives on .github configuration files.
skip-dirs:
- .github
- resources
- migrations # NOTE: this is relative to postgres module
- core/internal/user
- postgres/internal/user
- gen/*
linters-settings:
dupl:
threshold: 100
funlen:
lines: 65
gci:
sections:
- standard
- default
- prefix(github.com/get-eventually/go-eventually)
goconst:
min-len: 2
min-occurrences: 2
gocognit:
min-complexity: 20
gocritic:
enabled-tags:
- diagnostic
- experimental
- opinionated
- performance
- style
disabled-checks:
- dupImport # https://github.com/go-critic/go-critic/issues/845
gocyclo:
min-complexity: 15
goimports:
local-prefixes: github.com/get-eventually/go-eventually
golint:
min-confidence: 0
govet:
check-shadowing: true
lll:
line-length: 160
misspell:
locale: US
nolintlint:
allow-leading-space: true # don't require machine-readable nolint directives (i.e. with no leading space)
allow-unused: false # report any unused nolint directives
require-explanation: false # don't require an explanation for nolint directives
require-specific: false # don't require nolint directives to be specific about which linter is being skipped
prealloc:
# NOTE: since the codebase uses channels as streams pretty extensively, we are
# disabling the range-over-channel case for this linter.
range-loops: false
linters:
disable-all: true
enable:
- dogsled
- dupl
- errcheck
- exhaustive
- funlen
- gci
- gochecknoinits
- gocognit
- goconst
# NOTE: disabling this linter since it panics when analyzing core/message pkg.
# - gocritic
- gocyclo
- godot
- gofumpt
- goimports
- gomnd
- goprintffuncname
- gosec
- gosimple
- ineffassign
- lll
- makezero
- misspell
- nakedret
- nestif
- nolintlint
- prealloc
- revive
# These two linters are useful for the Postgres Event Store implementation.
- staticcheck
- stylecheck
- testpackage
- typecheck
- unconvert
- unused
- whitespace
- wsl
# These linters are disabled due to Go 1.18 issues with go/ssa package.
# More context here: https://github.com/golangci/golangci-lint/issues/2649
#
# - bodyclose
# - govet
# - nilerr
# - rowserrcheck
# - sqlclosecheck
# - structcheck
# - unparam
# - wastedassign
issues:
exclude-use-default: false
# Excluding configuration per-path, per-linter, per-text and per-source
exclude-rules:
- path: _test\.go
linters:
- gomnd
- funlen
- path: core/*
linters:
- gocritic
# dupl linter is annoying in this module.
- path: serdes
linters:
- dupl
# https://github.com/go-critic/go-critic/issues/926
- linters:
- gocritic
text: "unnecessaryDefer:"