Add the config file for golangci-lint

This uses most of the settings from the default golangci-lint config,
but a few are changed after using it on my own projects. This will
require some codebase changes to get the linter to pass, but just adding
the config file for now.
This commit is contained in:
Ryan Clark 2021-01-18 14:45:02 +00:00
parent 3904d6ef74
commit 1b2ecadb53
No known key found for this signature in database
GPG Key ID: DF5DF5F2FBAC4DAF
1 changed files with 103 additions and 0 deletions

103
.golangci.yaml Normal file
View File

@ -0,0 +1,103 @@
linters-settings:
dupl:
threshold: 100
funlen:
lines: 100
statements: 50
gci:
local-prefixes: github.com/udemy/schema-vault
goconst:
min-len: 2
min-occurrences: 2
gocritic:
enabled-tags:
- diagnostic
- experimental
- opinionated
- performance
- style
disabled-checks:
- dupImport
- ifElseChain
- octalLiteral
- whyNoLint
- wrapperFunc
settings:
rangeValCopy:
sizeThreshold: 512
gocyclo:
min-complexity: 15
goimports:
local-prefixes: github.com/udemy/schema-vault
golint:
min-confidence: 0
gomnd:
settings:
mnd:
checks: argument,case,condition,return
govet:
check-shadowing: true
maligned:
suggest-new: true
misspell:
locale: US
nolintlint:
allow-leading-space: true
allow-unused: false
require-explanation: false
require-specific: false
linters:
disable-all: true
enable:
- bodyclose
- deadcode
- depguard
- dogsled
- dupl
- errcheck
- exhaustive
- funlen
- gochecknoinits
- goconst
- gocritic
- gocyclo
- goimports
- gofmt
- golint
- gomnd
- goprintffuncname
- gosec
- gosimple
- govet
- ineffassign
- interfacer
- misspell
- nakedret
- noctx
- nolintlint
- rowserrcheck
- scopelint
- staticcheck
- structcheck
- stylecheck
- typecheck
- unconvert
- unparam
- unused
- varcheck
- whitespace
issues:
exclude-rules:
- path: _test\.go
linters:
- gomnd
- linters:
- gocritic
text: "unnecessaryDefer:"
run:
timeout: 1m
issues-exit-code: 1
tests: true
skip-dirs-use-default: true
allow-parallel-runners: true