mirror of
https://github.com/pomerium/pomerium.git
synced 2025-04-29 02:16:28 +02:00
236 lines
7.9 KiB
YAML
236 lines
7.9 KiB
YAML
# forked from istio
|
|
service:
|
|
# When updating this, also update bin/linters.sh accordingly
|
|
golangci-lint-version: 1.21.x # use the fixed version to not introduce new linters unexpectedly
|
|
run:
|
|
# timeout for analysis, e.g. 30s, 5m, default is 1m
|
|
deadline: 20m
|
|
|
|
# which dirs to skip: they won't be analyzed;
|
|
# can use regexp here: generated.*, regexp is applied on full path;
|
|
# default value is empty list, but next dirs are always skipped independently
|
|
# from this option's value:
|
|
# vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
|
|
skip-dirs:
|
|
- genfiles$
|
|
- vendor$
|
|
|
|
# which files to skip: they will be analyzed, but issues from them
|
|
# won't be reported. Default value is empty list, but there is
|
|
# no need to include all autogenerated files, we confidently recognize
|
|
# autogenerated files. If it's not please let us know.
|
|
skip-files:
|
|
- ".*\\.pb\\.go"
|
|
- ".*\\.gen\\.go"
|
|
|
|
linters:
|
|
enable-all: true
|
|
disable:
|
|
- depguard
|
|
- dupl
|
|
- funlen
|
|
- gochecknoglobals
|
|
- gochecknoinits
|
|
- gocognit
|
|
- goconst
|
|
- gocyclo
|
|
- godox
|
|
- interfacer
|
|
- maligned
|
|
- nakedret
|
|
- prealloc
|
|
- scopelint
|
|
- whitespace
|
|
- wsl
|
|
fast: false
|
|
|
|
linters-settings:
|
|
errcheck:
|
|
# report about not checking of errors in type assetions: `a := b.(MyStruct)`;
|
|
# default is false: such cases aren't reported by default.
|
|
check-type-assertions: false
|
|
|
|
# report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`;
|
|
# default is false: such cases aren't reported by default.
|
|
check-blank: false
|
|
|
|
govet:
|
|
# report about shadowed variables
|
|
check-shadowing: false
|
|
golint:
|
|
# minimal confidence for issues, default is 0.8
|
|
min-confidence: 0.8
|
|
gofmt:
|
|
# simplify code: gofmt with `-s` option, true by default
|
|
simplify: true
|
|
misspell:
|
|
# Correct spellings using locale preferences for US or UK.
|
|
# Default is to use a neutral variety of English.
|
|
# Setting locale to US will correct the British spelling of 'colour' to 'color'.
|
|
locale: US
|
|
lll:
|
|
# max line length, lines longer will be reported. Default is 120.
|
|
# '\t' is counted as 1 character by default, and can be changed with the tab-width option
|
|
line-length: 160
|
|
# tab width in spaces. Default to 1.
|
|
tab-width: 1
|
|
unused:
|
|
# treat code as a program (not a library) and report unused exported identifiers; default is false.
|
|
# XXX: if you enable this setting, unused will report a lot of false-positives in text editors:
|
|
# if it's called for subdir of a project it can't find funcs usages. All text editor integrations
|
|
# with golangci-lint call it on a directory with the changed file.
|
|
check-exported: false
|
|
unparam:
|
|
# call graph construction algorithm (cha, rta). In general, use cha for libraries,
|
|
# and rta for programs with main packages. Default is cha.
|
|
algo: cha
|
|
|
|
# Inspect exported functions, default is false. Set to true if no external program/library imports your code.
|
|
# XXX: if you enable this setting, unparam will report a lot of false-positives in text editors:
|
|
# if it's called for subdir of a project it can't find external interfaces. All text editor integrations
|
|
# with golangci-lint call it on a directory with the changed file.
|
|
check-exported: false
|
|
gocritic:
|
|
enabled-checks:
|
|
- appendCombine
|
|
- argOrder
|
|
- assignOp
|
|
- badCond
|
|
- boolExprSimplify
|
|
- builtinShadow
|
|
- captLocal
|
|
- caseOrder
|
|
- codegenComment
|
|
- commentedOutCode
|
|
- commentedOutImport
|
|
- defaultCaseOrder
|
|
- deprecatedComment
|
|
- docStub
|
|
- dupArg
|
|
- dupBranchBody
|
|
- dupCase
|
|
- dupSubExpr
|
|
- elseif
|
|
- emptyFallthrough
|
|
- equalFold
|
|
- flagDeref
|
|
- flagName
|
|
- hexLiteral
|
|
- indexAlloc
|
|
- initClause
|
|
- methodExprCall
|
|
- nilValReturn
|
|
- offBy1
|
|
- rangeExprCopy
|
|
- regexpMust
|
|
- sloppyLen
|
|
- stringXbytes
|
|
- switchTrue
|
|
- typeAssertChain
|
|
- typeSwitchVar
|
|
- typeUnparen
|
|
- underef
|
|
- unlambda
|
|
- unnecessaryBlock
|
|
- unslice
|
|
- valSwap
|
|
- weakCond
|
|
- yodaStyleExpr
|
|
|
|
# Unused
|
|
# - appendAssign
|
|
# - commentFormatting
|
|
# - emptyStringTest
|
|
# - exitAfterDefer
|
|
# - ifElseChain
|
|
# - hugeParam
|
|
# - importShadow
|
|
# - nestingReduce
|
|
# - paramTypeCombine
|
|
# - ptrToRefParam
|
|
# - rangeValCopy
|
|
# - singleCaseSwitch
|
|
# - sloppyReassign
|
|
# - unlabelStmt
|
|
# - unnamedResult
|
|
# - wrapperFunc
|
|
|
|
issues:
|
|
# List of regexps of issue texts to exclude, empty list by default.
|
|
# But independently from this option we use default exclude patterns,
|
|
# it can be disabled by `exclude-use-default: false`. To list all
|
|
# excluded by default patterns execute `golangci-lint run --help`
|
|
exclude:
|
|
## Defaults we want from golangci-lint
|
|
# errcheck: Almost all programs ignore errors on these functions and in most cases it's ok
|
|
- Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked
|
|
# golint: False positive when tests are defined in package 'test'
|
|
- func name will be used as test\.Test.* by other packages, and that stutters; consider calling this
|
|
# govet: Common false positives
|
|
- (possible misuse of unsafe.Pointer|should have signature)
|
|
# staticcheck: Developers tend to write in C-style with an explicit 'break' in a 'switch', so it's ok to ignore
|
|
- ineffective break statement. Did you mean to break out of the outer loop
|
|
# gosec: Too many false-positives on 'unsafe' usage
|
|
- Use of unsafe calls should be audited
|
|
# gosec: Too many false-positives for parametrized shell calls
|
|
- Subprocess launch(ed with variable|ing should be audited)
|
|
# gosec: Duplicated errcheck checks
|
|
- G104
|
|
# gosec: Too many issues in popular repos
|
|
- (Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)
|
|
# gosec: False positive is triggered by 'src, err := ioutil.ReadFile(filename)'
|
|
- Potential file inclusion via variable
|
|
|
|
##
|
|
## Custom
|
|
##
|
|
# Mostly harmless buffer writes where we skip error checking
|
|
# https://golang.org/pkg/bytes/#Buffer.Write
|
|
- "Error return value of `w.Write` is not checked"
|
|
- "Error return value of `io.WriteString` is not checked"
|
|
- "Error return value of `viper.BindEnv` is not checked"
|
|
- "Error return value of `h.Write` is not checked"
|
|
- "ExecuteTemplate` is not checked"
|
|
|
|
# go sec : we want to allow skipping tls auth
|
|
- "TLS InsecureSkipVerify set true."
|
|
- "goroutine calls T.Fatalf, which must be called in the same goroutine as the test"
|
|
# good job Protobuffs!
|
|
- "method XXX"
|
|
- "SA1019"
|
|
|
|
exclude-rules:
|
|
# Exclude some linters from running on test files.
|
|
- path: _test\.go$|^tests/|^samples/|templates\.go$
|
|
linters:
|
|
- errcheck
|
|
- maligned
|
|
- lll
|
|
- gosec
|
|
- bodyclose
|
|
- unparam
|
|
# erroneously thinks google api url is a cred
|
|
- path: internal/identity/google.go
|
|
text: "Potential hardcoded credentials"
|
|
linters:
|
|
- gosec
|
|
# deprecated but every example still uses New
|
|
- path: internal/identity/google.go
|
|
text: "please use NewService instead"
|
|
linters:
|
|
- staticcheck
|
|
- path: internal/identity/oauth/github/github.go
|
|
text: "Potential hardcoded credentials"
|
|
linters:
|
|
- gosec
|
|
# Independently from option `exclude` we use default exclude patterns,
|
|
# it can be disabled by this option. To list all
|
|
# excluded by default patterns execute `golangci-lint run --help`.
|
|
# Default value for this option is true.
|
|
exclude-use-default: false
|
|
|
|
# Maximum issues count per one linter. Set to 0 to disable. Default is 50.
|
|
max-per-linter: 0
|
|
|
|
# Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
|
|
max-same-issues: 0
|