pulumi/.golangci.yml

106 lines
3.0 KiB
YAML

run:
timeout: 10m
# Enable checking the by default skipped "examples" dirs
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
- pkg: github.com/pulumi/pulumi/sdk/v3/go/common/testing
alias: ptesting
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'
exclude-dirs:
- Godeps$
- builtin$
- node_modules
- testdata$
- third_party$
- vendor$
exclude-dirs-use-default: false