.golangci.yml

  1version: "2"
  2
  3run:
  4  timeout: 10m
  5  build-tags:
  6    - integration
  7
  8linters:
  9  default: none
 10  enable:
 11    - errcheck
 12    - govet
 13    - ineffassign
 14    - staticcheck
 15    - unused
 16    - bodyclose
 17    - copyloopvar
 18    - dupword
 19    - durationcheck
 20    - errorlint
 21    - exhaustive
 22    - forbidigo
 23    - gocheckcompilerdirectives
 24    - gochecksumtype
 25    - goconst
 26    - gocritic
 27    - gocyclo
 28    - gosec
 29    - misspell
 30    - nilerr
 31    - nilnil
 32    - noctx
 33    - nolintlint
 34    - prealloc
 35    - predeclared
 36    - reassign
 37    - revive
 38    - rowserrcheck
 39    - sqlclosecheck
 40    - tagalign
 41    - tparallel
 42    - unconvert
 43    - unparam
 44    - usestdlibvars
 45    - wastedassign
 46    - whitespace
 47
 48  settings:
 49    gocyclo:
 50      min-complexity: 30
 51    goconst:
 52      min-len: 4
 53      min-occurrences: 5
 54    gosec:
 55      excludes:
 56        - G101
 57        - G115
 58        - G204
 59        - G304
 60        - G306
 61        - G401
 62        - G501
 63    govet:
 64      enable-all: true
 65      disable:
 66        - fieldalignment
 67        - shadow
 68    revive:
 69      rules:
 70        - name: blank-imports
 71        - name: context-as-argument
 72        - name: context-keys-type
 73        - name: dot-imports
 74        - name: error-return
 75        - name: error-strings
 76        - name: error-naming
 77        - name: increment-decrement
 78        - name: var-declaration
 79        - name: package-comments
 80          disabled: true
 81        - name: range
 82        - name: receiver-naming
 83        - name: time-naming
 84        - name: unexported-return
 85        - name: indent-error-flow
 86        - name: errorf
 87        - name: empty-block
 88        - name: superfluous-else
 89        - name: unused-parameter
 90          disabled: true
 91        - name: unreachable-code
 92        - name: redefines-builtin-id
 93    forbidigo:
 94      forbid:
 95        - pattern: ^fmt\.Print.*$
 96          msg: "use logger instead of fmt.Print*"
 97
 98  exclusions:
 99    generated: lax
100    rules:
101      - path: _test\.go
102        linters:
103          - errcheck
104          - gosec
105          - goconst
106          - gocyclo
107          - forbidigo
108          - noctx
109          - unparam
110      - path: main\.go
111        linters:
112          - forbidigo
113      - path: cli/
114        linters:
115          - forbidigo
116      - text: "weak cryptographic primitive"
117        linters:
118          - gosec
119
120issues:
121  max-issues-per-linter: 0
122  max-same-issues: 0
123
124formatters:
125  enable:
126    - gofmt
127    - goimports