环球微资讯!一款不错的开源的代码审查辅助工具
❝reviewdog
地址:https://github.com/reviewdog/reviewdog
⭐️:5.5k
(资料图片)
语言:Go
❞
在做代码审查时,我们一般会使用工具来自动检测到的错误或样式问题,如我们可以使用各种 linter 和静态代码分析工具来检测本地机器、编辑器、CI 服务中的此类问题。但静态分析工具可能会有大量误报,我们很难从混乱的分析结果中找到真正的问题。一些 linter 支持通过代码注释的减少这种误报,但这又可能会弄乱我们的代码。
一种解决方案是每次提交代码时,只针对更改的地方做分析,并产出评审注释。这样我们能集中注意力,去发现真正的问题。而 reviewdog 正是提供这样一个能力的工具。
reviewdog 提供了一种将代码审查评论发布到代码托管服务(例如 GitHub)的方法,该方法可以轻松地与任何 linter 工具集成。它使用 lint 工具的输出,如果发现与要审查的补丁不同,则将它们作为评论发布。reviewdog 还支持在本地环境中运行以通过 diff 过滤 lint 工具的输出。
可以在本地运行 reviewdog 以按差异过滤结果,也可以在 CI 服务器中运行以发布评审报告。
可以将 GitHub API 令牌存储在 REVIEWDOG_GITHUB_API_TOKEN 环境变量中。以下是 CircleCI 的基本配置
test: pre: - go get github.com/haya14busa/reviewdog/cmd/reviewdog override: - >- go tool vet -all -shadowstrict . 2>&1 | reviewdog -f=govet -ci="circle-ci"
为了支持任何编译器、linter 或任何工具,reviewdog 使用了 Vim 的“errorformat”功能(在 Go 中移植)。例如,如果结果格式是 {file}:{line number}:{column number}: {message},errorformat 应该是 %f:%l:%c: %m
errorformat还能处理更复杂的多行消息。
$cattestdata/sbt.in[warn]/path/to/F1.scala:203:localvalinmethodfisneverused:(warningsmaple3)[warn]valx=1[warn]^[warn]/path/to/F1.scala:204:localvalinmethodfisneverused:(warningsmaple2)[warn]valx=2[warn]^[error]/path/to/F2.scala:1093:error:value++isnotamemberofInt[error]valx=1++2[error]^[warn]/path/to/dir/F3.scala:83:localvalinmethodfisneverused[warn]valx=4[warn]^[error]/path/to/dir/F3.scala:84:error:value++isnotamemberofInt[error]valx=5++2[error]^[warn]/path/to/dir/F3.scala:86:localvalinmethodfisneverused[warn]valx=6[warn]^$errorformat"%E[%t%.%+]%f:%l:error:%m""%A[%t%.%+]%f:%l:%m""%Z[%.%+]%p^""%C[%.%+]%.%#""%-G%.%#"理解整个 errorformat功能有点困难,但在大多数情况下,我们所需要知道的只是基本的简单项目(%f:文件,%l:行号,%c:列号,%m:消息)。
最重要的是,reviewdog ( haya14busa/errorformat ) 为主要工具提供了预定义的错误格式,因此在大多数情况下我们不需要编写错误格式。可以在此处查看预定义的错误格式或 reviewdog -list。
reviewdog 可以使用任何工具自动审查我们的代码,还可以在本地运行以加快开发速度。reviewdog 帮助我们引入严格的 lint 工具(或经常报告误报结果的工具),它仅针对 Pull-Request 之类的差异检测,而不是整个代码库。
reviewdog 目前支持多种语言和工具,可以参考相关 repo 以按自己的需求来配置。
相关阅读
-
世界热推荐:今晚7:00直播丨下一个突破...
今晚19:00,Cocos视频号直播马上点击【预约】啦↓↓↓在运营了三年... -
NFT周刊|Magic Eden宣布支持Polygon网...
Block-986在NFT这样的市场,每周都会有相当多项目起起伏伏。在过去... -
环球今亮点!头条观察 | DeFi的兴衰与...
在比特币得到机构关注之后,许多财务专家预测世界将因为加密货币的... -
重新审视合作,体育Crypto的可靠关系才能双赢
Block-987即使在体育Crypto领域,人们的目光仍然集中在FTX上。随着... -
简讯:前端单元测试,更进一步
前端测试@2022如果从2014年Jest的第一个版本发布开始计算,前端开发... -
焦点热讯:刘强东这波操作秀
近日,刘强东发布京东全员信,信中提到:自2023年1月1日起,逐步为...