123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- # This file contains all available configuration options
- # with their default values.
- # options for analysis running
- run:
- # default concurrency is a available CPU number
- #concurrency: 4
- # timeout for analysis, e.g. 30s, 5m, default is 1m
- deadline: 30m
- # include test files or not, default is true
- tests: false
- # 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:
- - bin$
- - api$
- - build$
- - configs$
- - deployments$
- - docs$
- - githooks$
- - init$
- - third_party$
- - tools$
- - vendor$
- - \.git$
- # 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:
- - "_easyjson.go"
- # - "_rpc.go"
- # - ".pb.go"
- # all available settings of specific linters
- linters-settings:
- errcheck:
- # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`;
- # default is false: such cases aren't reported by default.
- check-blank: true
- govet:
- # report about shadowed variables
- check-shadowing: true
- golint:
- # minimal confidence for issues, default is 0.8
- min-confidence: 0.3
- gocyclo:
- # minimal code complexity to report, 30 by default (but we recommend 10-20)
- min-complexity: 15
- gocognit:
- # minimal code complexity to report, 30 by default (but we recommend 10-20)
- min-complexity: 20
- dupl:
- # tokens count to trigger issue, 150 by default
- threshold: 200
- 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: 120
- nakedret:
- # make an issue if func has more lines of code than this setting and it has naked returns; default is 30
- max-func-lines: 30
- funlen:
- lines: 80
- statements: 50
- godox:
- # report any comments starting with keywords, this is useful for TODO or FIXME comments that
- # might be left in the code accidentally and should be resolved before merging
- keywords: # default keywords are TODO, BUG, and FIXME, these can be overwritten by this setting
- - TODO
- - BUG
- - FIXME
- - HACK
- dogsled:
- # checks assignments with too many blank identifiers; default is 2
- max-blank-identifiers: 2
- whitespace:
- multi-if: false # Enforces newlines (or comments) after every multi-line if statement
- multi-func: false # Enforces newlines (or comments) after every multi-line function signature
- wsl:
- # If true append is only allowed to be cuddled if appending value is
- # matching variables, fields or types on line above. Default is true.
- strict-append: true
- # Allow calls and assignments to be cuddled as long as the lines have any
- # matching variables, fields or types. Default is true.
- allow-assign-and-call: true
- # Allow multiline assignments to be cuddled. Default is true.
- allow-multiline-assign: true
- # Allow declarations (var) to be cuddled.
- allow-cuddle-declarations: false
- # Allow trailing comments in ending of blocks
- allow-trailing-comment: false
- # Force newlines in end of case at this limit (0 = never).
- force-case-trailing-whitespace: 0
- linters:
- disable-all: true
- enable:
- - bodyclose
- - deadcode
- - depguard
- - dupl
- - errcheck
- - goconst
- - gocritic
- - gocyclo
- #- godox
- - golint
- - gosec
- - gosimple
- - govet
- - ineffassign
- - interfacer
- - lll
- - misspell
- - nakedret
- - prealloc
- - scopelint
- - staticcheck
- - structcheck
- - stylecheck
- - typecheck
- - unconvert
- - unparam
- - unused
- - varcheck
- #disable:
- # - goimports # not needed
- # - maligned # not critical for us
- # - gochecknoglobals # we are using this
- # - gochecknoinits # and this
- # - dogsled # it is not clear how to fix problems from this linter
- # - gofmt # buggy linter and we have script check
- #
- # # new
- # - gomnd # supported from 1.22.2
- # - funlen # dupl of gocyclo
- # - gocognit # the same
- # - wsl # imho, useless as linter, needed autoformat tool
- # - whitespace # the same
- fast: false
- issues:
- max-issues-per-linter: 0
- max-same-issues: 0
- exclude:
- - "should have comment"
- - "always receives"
- - "parameter .* is always"
- - "comment on exported .* should be of the form"
- - "Use of weak cryptographic primitive"
- - "can be `fmt.Stringer`"
- - "can be `github.com/gogo/protobuf/proto.Message`"
- - 'ST1016: methods on the same type should have the same receiver name \(seen \d+x "[^"]+", 4x "v"\)'
- - 'ST1016: methods on the same type should have the same receiver name \(seen 4x "v", \d+x "[^"]+"\)'
- - 'ST1016: methods on the same type should have the same receiver name \(seen \d+x "[^"]+", \d+x "srv"\)'
- - 'ST1016: methods on the same type should have the same receiver name \(seen \d+x "srv", \d+x "[^"]+"\)'
- exclude-rules:
- # Exclude lll issues for long lines with go:generate
- - linters:
- - lll
- source: "^//go:generate "
- output:
- format: tab
|