自动代码评审机器人

Google 最近在 GitHub 上公开了其多年的内部工程实践 google/eng-practices,目前只包含了 Code Review 的规范,后续会逐步公开其他的普遍适用的工程实践。

代码评审(Code Review)很重要,尤其对于需要多人写作的项目,它使得代码仓库能够持续保持健康的状态,同时也能促进成员之间的相互协作和学习。

代码评审包括很多方面,比如设计是否合理、代码实现的功能是否是用户期望的、复杂度、是否有相应的测试等等。有时候也包含部分的代码规范,比如争议比较多的左大括号要不要换行。我们不希望耗费太多的时间在审核一些语法错误和格式问题上,而这些往往都是能够通过自动化的方法检测的,比如使用静态代码检查工具或者各种语言的 linter 工具。

今天要推荐一个工具 ReviewDog, 能够自动化的检测 PR(Pull Requests)里面的一些语法和格式的错误,同时提交评论,目前支持各个平台 GitHub、GitLab 等,当然也支持本地运行。评审狗这个名字非常贴切了。

ReviewDog 可以很容易的集成到你使用的 CI 平台上,目前支持 GitHub Actions、Travis CI、Circle CI、GitLab CI 等。使用如下代码就可以在 Travis CI 集成 ReviewDog 工具。

install:
  - mkdir -p ~/bin/ && export export PATH="~/bin/:$PATH"
  - curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh| sh -s -- -b ~/bin

script:
  - reviewdog -conf=.reviewdog.yml -reporter=github-pr-check

ReviewDog 通过解析 Lint 的输出结果,与代码提交的 Diff 进行比较,从中找出此次变更的问题。与直接通过静态代码扫描进行拦截相比,ReviewDog 通过交互式的代码评审方式,能够减小错误检测(false positive)带来的影响。

项目地址:https://github.com/reviewdog/reviewdog


更多精彩请扫码关注如下公众号。

Written on January 1, 2020