ci: add golangci-lint (#675)
parent
e39d0d241e
commit
a631cbddf4
@ -0,0 +1,138 @@ |
|||||||
|
# [index] https://github.com/golangci/golangci-lint |
||||||
|
# [example] https://github.com/golangci/golangci-lint/blob/master/.golangci.example.yml |
||||||
|
|
||||||
|
run: |
||||||
|
tests: true #是否包含测试文件 |
||||||
|
issues-exit-code: 0 |
||||||
|
|
||||||
|
linters-settings: |
||||||
|
# govet: |
||||||
|
# check-shadowing: true #启用了对同名变量名在函数中被隐藏的警告 |
||||||
|
gofmt: |
||||||
|
simplify: true |
||||||
|
goimports: |
||||||
|
local-prefixes: "github.com/go-kratos/kratos" # 格式化代码时,本地代码单独块 |
||||||
|
gocritic: |
||||||
|
enabled-tags: |
||||||
|
- diagnostic |
||||||
|
# - style |
||||||
|
# - performance |
||||||
|
disabled-checks: |
||||||
|
#- wrapperFunc |
||||||
|
#- dupImport # https://github.com/go-critic/go-critic/issues/845 |
||||||
|
- commentedOutCode |
||||||
|
- ifElseChain |
||||||
|
- elseif |
||||||
|
settings: # settings passed to gocritic |
||||||
|
captLocal: # must be valid enabled check name |
||||||
|
paramsOnly: true |
||||||
|
# rangeValCopy: |
||||||
|
# sizeThreshold: 32 |
||||||
|
lll: |
||||||
|
line-length: 500 |
||||||
|
funlen: |
||||||
|
lines: 500 |
||||||
|
statements: 500 |
||||||
|
gocyclo: |
||||||
|
min-complexity: 100 |
||||||
|
|
||||||
|
linters: |
||||||
|
disable-all: true |
||||||
|
enable: |
||||||
|
# https://golangci-lint.run/usage/configuration/ |
||||||
|
- bodyclose # http.resp.body 内存泄露检查 |
||||||
|
- deadcode # 无用的变量声明检查 |
||||||
|
- depguard # 自定义依赖包白、黑名单 控制导包 |
||||||
|
- dogsled # 空白标识符的赋值检查 默认为2 |
||||||
|
#- dupl # 重复代码检查 |
||||||
|
- errcheck # 未判断的error返回值检查 |
||||||
|
- funlen # 接口最大行数检查 |
||||||
|
#- gochecknoinits # 包中定义init()函数检查 |
||||||
|
#- goconst # 常量字符串检查 |
||||||
|
- gocritic # |
||||||
|
- gocyclo # 代码复杂度检查 |
||||||
|
- gofmt # 优化代码 |
||||||
|
- goimports # 自动增加和删除包 |
||||||
|
- golint # 代码风格检查 |
||||||
|
#- gomnd # 参数、赋值、用例、条件、操作和返回语句检查 |
||||||
|
- goprintffuncname # |
||||||
|
- gosec # 源代码安全检查 |
||||||
|
- gosimple # 可以优化的代码检查 注:该工具已整合到staticcheck中 |
||||||
|
- govet # 代码正确性检查 |
||||||
|
- ineffassign # 无效赋值检查 |
||||||
|
- interfacer # 建议接口的使用方式 |
||||||
|
- lll # 行最大字符 |
||||||
|
- misspell # 拼写错误检查 |
||||||
|
- nakedret # 大于指定函数长度的函数的无约束返回值检查 |
||||||
|
- nolintlint # |
||||||
|
- rowserrcheck # sql.Rows.Err检查 |
||||||
|
- scopelint # 循环变量引用检查,排除test文件 |
||||||
|
- staticcheck # 静态检查 |
||||||
|
- structcheck # 结构体字段的约束条件检查 |
||||||
|
- stylecheck # 代码风格检查 |
||||||
|
- typecheck # 类型检查 |
||||||
|
- unconvert # 类型转换检查 |
||||||
|
- unparam # 未使用参数检查 |
||||||
|
#- unused # 未使用变量、函数检查 |
||||||
|
- varcheck # 报告exported变量和常量 |
||||||
|
- whitespace # 空行检查 |
||||||
|
|
||||||
|
severity: |
||||||
|
# Default value is empty string. |
||||||
|
# Set the default severity for issues. If severity rules are defined and the issues |
||||||
|
# do not match or no severity is provided to the rule this will be the default |
||||||
|
# severity applied. Severities should match the supported severity names of the |
||||||
|
# selected out format. |
||||||
|
# - Code climate: https://docs.codeclimate.com/docs/issues#issue-severity |
||||||
|
# - Checkstyle: https://checkstyle.sourceforge.io/property_types.html#severity |
||||||
|
# - Github: https://help.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-error-message |
||||||
|
default-severity: error |
||||||
|
# The default value is false. |
||||||
|
# If set to true severity-rules regular expressions become case sensitive. |
||||||
|
case-sensitive: false |
||||||
|
# Default value is empty list. |
||||||
|
# When a list of severity rules are provided, severity information will be added to lint |
||||||
|
# issues. Severity rules have the same filtering capability as exclude rules except you |
||||||
|
# are allowed to specify one matcher per severity rule. |
||||||
|
# Only affects out formats that support setting severity information. |
||||||
|
rules: |
||||||
|
- linters: |
||||||
|
- dupl |
||||||
|
- nakedret |
||||||
|
- lll |
||||||
|
- misspell |
||||||
|
- goprintffuncname |
||||||
|
- stylecheck |
||||||
|
- deadcode |
||||||
|
- whitespace |
||||||
|
- unparam |
||||||
|
- golint |
||||||
|
- gosec |
||||||
|
- staticcheck |
||||||
|
- structcheck |
||||||
|
- gocritic |
||||||
|
- errcheck |
||||||
|
- rowserrcheck |
||||||
|
- unconvert |
||||||
|
- gosimple |
||||||
|
- rowserrcheck |
||||||
|
- ineffassign |
||||||
|
severity: warning |
||||||
|
|
||||||
|
issues: |
||||||
|
# Excluding configuration per-path, per-linter, per-text and per-source |
||||||
|
exclude-rules: |
||||||
|
- path: _test\.go |
||||||
|
linters: |
||||||
|
- gomnd |
||||||
|
- gocyclo |
||||||
|
- errcheck |
||||||
|
- dupl |
||||||
|
- gosec |
||||||
|
- scopelint |
||||||
|
- interfacer |
||||||
|
- govet |
||||||
|
# https://github.com/go-critic/go-critic/issues/926 |
||||||
|
- linters: |
||||||
|
- gocritic |
||||||
|
text: "unnecessaryDefer:" |
Loading…
Reference in new issue