.golangci.yml raw

   1  version: "2"
   2  
   3  #build-tags:
   4  #  - integrationtest
   5  
   6  formatters:
   7    enable:
   8      - gci
   9      - gofumpt
  10    settings:
  11      goimports:
  12        local-prefixes:
  13          - github.com/nrdcg/bunny-go
  14  
  15  linters:
  16    default: all
  17    disable:
  18      - bodyclose
  19      - canonicalheader
  20      - contextcheck
  21      - cyclop
  22      - dupl
  23      - err113
  24      - errchkjson
  25      - errname
  26      - exhaustive
  27      - exhaustruct
  28      - forbidigo
  29      - forcetypeassert
  30      - gosec
  31      - gosmopolitan
  32      - ireturn
  33      - lll
  34      - makezero
  35      - mnd
  36      - musttag
  37      - nestif
  38      - nilnil
  39      - nlreturn
  40      - noctx
  41      - noinlineerr
  42      - nonamedreturns
  43      - paralleltest
  44      - prealloc
  45      - rowserrcheck # not relevant (SQL)
  46      - sqlclosecheck # not relevant (SQL)
  47      - tagliatelle
  48      - testpackage
  49      - tparallel
  50      - varnamelen
  51      - wrapcheck
  52      - wsl
  53  
  54    settings:
  55      depguard:
  56        rules:
  57          main:
  58            deny:
  59              - pkg: github.com/instana/testify
  60                desc: not allowed
  61              - pkg: github.com/pkg/errors
  62                desc: Should be replaced by standard lib errors package
  63      funlen:
  64        lines: -1
  65        statements: 50
  66      goconst:
  67        min-len: 3
  68        min-occurrences: 3
  69      gocritic:
  70        disabled-checks:
  71          - paramTypeCombine # already handle by gofumpt.extra-rules
  72          - whyNoLint # already handle by nonolint
  73          - unnamedResult
  74          - hugeParam
  75          - sloppyReassign
  76          - rangeValCopy
  77          - octalLiteral
  78          - ptrToRefParam
  79          - appendAssign
  80          - ruleguard
  81          - httpNoBody
  82          - exposedSyncMutex
  83        enabled-tags:
  84          - diagnostic
  85          - style
  86          - performance
  87      gocyclo:
  88        min-complexity: 12
  89      godox:
  90        keywords:
  91          - FIXME
  92      govet:
  93        disable:
  94          - fieldalignment
  95        enable-all: true
  96        settings:
  97          printf:
  98            funcs:
  99              - Print
 100              - Printf
 101              - Warn
 102              - Warnf
 103              - Fatal
 104              - Fatalf
 105      misspell:
 106        locale: US
 107      revive:
 108        rules:
 109          - name: struct-tag
 110          - name: blank-imports
 111          - name: context-as-argument
 112          - name: context-keys-type
 113          - name: dot-imports
 114          - name: error-return
 115          - name: error-strings
 116          - name: error-naming
 117          - name: exported
 118            disabled: true
 119          - name: if-return
 120          - name: increment-decrement
 121          - name: var-naming
 122          - name: var-declaration
 123          - name: package-comments
 124            disabled: true
 125          - name: range
 126          - name: receiver-naming
 127          - name: time-naming
 128          - name: unexported-return
 129          - name: indent-error-flow
 130          - name: errorf
 131          - name: empty-block
 132          - name: superfluous-else
 133          - name: unused-parameter
 134            disabled: true
 135          - name: unreachable-code
 136          - name: redefines-builtin-id
 137      tagalign:
 138        align: false
 139        order:
 140          - xml
 141          - json
 142          - yaml
 143          - yml
 144          - toml
 145          - mapstructure
 146          - url
 147      testifylint:
 148        disable:
 149          - require-error
 150          - go-require
 151      perfsprint:
 152        err-error: true
 153        errorf: true
 154        sprintf1: true
 155        strconcat: false
 156  
 157    exclusions:
 158      warn-unused: true
 159      presets:
 160        - comments
 161        - std-error-handling
 162      rules:
 163        - linters:
 164            - funlen
 165            - goconst
 166            - maintidx
 167          path: (.+)_test.go
 168        - path: client.go
 169          text: discardLogF is a global variable
 170        - path: client_example_test.go
 171          text: missing output for example, go test can't validate it
 172  
 173  issues:
 174    max-issues-per-linter: 0
 175    max-same-issues: 0
 176