forked from pulumi/pulumi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.golangci.yml
102 lines (94 loc) · 2.88 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
run:
timeout: 10m
# Enable checking the by default skipped "examples" dirs
skip-dirs:
- Godeps$
- builtin$
- node_modules
- testdata$
- third_party$
- vendor$
skip-dirs-use-default: false
build-tags:
- all
linters:
enable-all: false
enable:
- errcheck
- exhaustive
- prealloc
- gofumpt
- revive
- gosec
- govet
- ineffassign
- lll
- misspell
- nolintlint
- nakedret
- unconvert
- unused
- paralleltest
- perfsprint
- depguard
- importas
linters-settings:
nakedret:
# Make an issue if func has more lines of code than this setting, and it has naked returns.
# Default: 30
max-func-lines: 60
nolintlint:
# Some linter exclusions are added to generated or templated files
# pre-emptively.
# Don't complain about these.
allow-unused: true
govet:
enable:
- nilness
# Reject comparisons of reflect.Value with DeepEqual or '=='.
- reflectvaluecompare
# Reject sort.Slice calls with a non-slice argument.
- sortslice
# Detect write to struct/arrays by-value that aren't read again.
- unusedwrite
depguard:
rules:
protobuf:
deny:
- pkg: "github.com/golang/protobuf"
desc: Use google.golang.org/protobuf instead
importas:
alias:
- pkg: github.com/pulumi/pulumi/sdk/v3/proto/go
alias: pulumirpc
- pkg: github.com/pulumi/pulumi/sdk/v3/proto/go/testing
alias: testingrpc
- pkg: github.com/deckarep/golang-set/v2
alias: mapset
issues:
exclude-rules:
# Don't warn on unused parameters.
# Parameter names are useful; replacing them with '_' is undesirable.
- linters: [revive]
text: 'unused-parameter: parameter \S+ seems to be unused, consider removing or renaming it as _'
# staticcheck already has smarter checks for empty blocks.
# revive's empty-block linter has false positives.
# For example, as of writing this, the following is not allowed.
# for foo() { }
- linters: [revive]
text: 'empty-block: this block is empty, you can remove it'
# We *frequently* use the term 'new' in the context of properties
# (new and old properties),
# and we rarely use the 'new' built-in function.
# It's fine to ignore these cases.
- linters: [revive]
text: 'redefines-builtin-id: redefinition of the built-in function new'
exclude:
# https://github.com/pulumi/pulumi/issues/9469
- 'Name is deprecated: Name returns the variable or declaration name of the resource'
# https://github.com/pulumi/pulumi/issues/11869
- '"github.com/golang/protobuf/[\w/]+" is deprecated'
# https://github.com/pulumi/pulumi/issues/11870
- 'strings.Title has been deprecated'
# https://github.com/pulumi/pulumi/issues/12328
- 'deprecated: Please use types in:? cloud.google.com/go/logging/apiv2/loggingpb'