.golangci.yml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. # Created based on v1.56.1
  2. # NOTE: Keep this in sync with the version in .github/workflows/linter.yml
  3. run:
  4. modules-download-mode: readonly
  5. skip-dirs-use-default: false
  6. skip-dirs:
  7. - internal
  8. output:
  9. sort-results: true
  10. linters-settings:
  11. errcheck:
  12. check-type-assertions: true
  13. check-blank: true
  14. disable-default-exclusions: true
  15. exclude-functions:
  16. - '(*bytes.Buffer).Write' # always returns nil error
  17. - '(*github.com/valyala/bytebufferpool.ByteBuffer).Write' # always returns nil error
  18. - '(*github.com/valyala/bytebufferpool.ByteBuffer).WriteByte' # always returns nil error
  19. - '(*github.com/valyala/bytebufferpool.ByteBuffer).WriteString' # always returns nil error
  20. errchkjson:
  21. report-no-exported: true
  22. exhaustive:
  23. default-signifies-exhaustive: true
  24. forbidigo:
  25. forbid:
  26. - ^(fmt\.Print(|f|ln)|print|println)$
  27. - 'http\.Default(Client|Transport)'
  28. # TODO: Eventually enable these patterns
  29. # - 'time\.Sleep'
  30. # - 'panic'
  31. gocritic:
  32. disabled-checks:
  33. - ifElseChain
  34. gofumpt:
  35. module-path: github.com/gofiber/template
  36. extra-rules: true
  37. gosec:
  38. excludes:
  39. - G104 # Provided by errcheck
  40. config:
  41. global:
  42. audit: true
  43. depguard:
  44. rules:
  45. main:
  46. deny:
  47. - pkg: flag
  48. desc: '`flag` package is only allowed in main.go'
  49. - pkg: io/ioutil
  50. desc: '`io/ioutil` package is deprecated, use the `io` and `os` package instead'
  51. govet:
  52. check-shadowing: true
  53. enable-all: true
  54. disable:
  55. - shadow
  56. - fieldalignment
  57. - loopclosure
  58. grouper:
  59. import-require-single-import: true
  60. import-require-grouping: true
  61. misspell:
  62. locale: US
  63. nolintlint:
  64. require-explanation: true
  65. require-specific: true
  66. nonamedreturns:
  67. report-error-in-defer: true
  68. predeclared:
  69. q: true
  70. promlinter:
  71. strict: true
  72. revive:
  73. enable-all-rules: true
  74. rules:
  75. # Provided by gomnd linter
  76. - name: add-constant
  77. disabled: true
  78. - name: argument-limit
  79. disabled: true
  80. # Provided by bidichk
  81. - name: banned-characters
  82. disabled: true
  83. - name: cognitive-complexity
  84. disabled: true
  85. - name: comment-spacings
  86. disabled: true # TODO https://github.com/gofiber/fiber/issues/2816
  87. - name: cyclomatic
  88. disabled: true
  89. - name: early-return
  90. severity: warning
  91. disabled: true
  92. - name: exported
  93. disabled: true
  94. - name: file-header
  95. disabled: true
  96. - name: function-result-limit
  97. disabled: true
  98. - name: function-length
  99. disabled: true
  100. - name: line-length-limit
  101. disabled: true
  102. - name: max-public-structs
  103. disabled: true
  104. - name: modifies-parameter
  105. disabled: true
  106. - name: nested-structs
  107. disabled: true
  108. - name: package-comments
  109. disabled: true
  110. - name: unchecked-type-assertion
  111. disabled: true # TODO https://github.com/gofiber/fiber/issues/2816
  112. # Provided by errcheck
  113. - name: unhandled-error
  114. disabled: true
  115. - name: use-any # TODO Enable for v3 release
  116. disabled: true
  117. stylecheck:
  118. checks:
  119. - all
  120. - -ST1000
  121. - -ST1020
  122. - -ST1021
  123. - -ST1022
  124. tagliatelle:
  125. case:
  126. rules:
  127. json: snake
  128. tenv:
  129. all: true
  130. #unparam:
  131. # check-exported: true
  132. wrapcheck:
  133. ignorePackageGlobs:
  134. - github.com/gofiber/fiber/*
  135. - github.com/valyala/fasthttp
  136. issues:
  137. exclude-use-default: false
  138. linters:
  139. disable:
  140. - spancheck
  141. enable:
  142. - asasalint
  143. - asciicheck
  144. - bidichk
  145. - bodyclose
  146. - containedctx
  147. - contextcheck
  148. - depguard
  149. - dogsled
  150. - durationcheck
  151. - errcheck
  152. - errchkjson
  153. - errname
  154. - errorlint
  155. - execinquery
  156. - exhaustive
  157. - exportloopref
  158. - forbidigo
  159. - forcetypeassert
  160. - gochecksumtype
  161. - goconst
  162. - gocritic
  163. - gofmt
  164. - gofumpt
  165. - goimports
  166. - gomoddirectives
  167. - goprintffuncname
  168. - gosec
  169. - gosimple
  170. - gosmopolitan
  171. - govet
  172. - grouper
  173. - inamedparam
  174. - loggercheck
  175. - mirror
  176. - misspell
  177. - nakedret
  178. - nilerr
  179. - nilnil
  180. - noctx
  181. - nolintlint
  182. - nonamedreturns
  183. - nosprintfhostport
  184. - perfsprint
  185. - predeclared
  186. - promlinter
  187. - reassign
  188. - revive
  189. - rowserrcheck
  190. - sqlclosecheck
  191. - staticcheck
  192. - stylecheck
  193. - tagalign
  194. - tagliatelle
  195. - testifylint
  196. - testpackage
  197. - thelper
  198. - tparallel
  199. - typecheck
  200. - unconvert
  201. - unparam
  202. - unused
  203. - usestdlibvars
  204. - wastedassign
  205. - whitespace
  206. - wrapcheck
  207. - tenv