能够显著改进 GitHub 代码审查的工具和集成
作为软件工程师,我们都喜欢自动化。然而,代码审查通常是一个相当繁琐的手动过程,耗费了我们大量的时间。我们该如何改进呢?有很多技巧可以帮助我们高效地进行代码审查,这里我们就不赘述了。相反,让我们重点关注代码审查中可以自动化的部分。
在本文中,我们将探讨五种可以显著改善您在 GitHub 上进行代码审查体验的工具和集成。
Travis CI 或 CircleCI
首先,我们来谈谈持续集成 (CI)。为你的代码仓库搭建 CI 是自动化代码审查流程的第一步。有了 CI 流水线,你就可以运行任何你想要的操作!至少,你的 CI 流水线应该包含格式化、代码检查和单元测试等任务。你还可以考虑创建其他任务,例如构建工件、部署审查应用或运行端到端测试。
持续集成 (CI) 可以帮助您始终保持主分支的良好状态。它还能处理所有计算机擅长而人类不擅长的繁琐工作,从而加快代码审查流程。从此告别代码审查中关于代码风格或最佳实践的争论!有了 CI 流水线,您可以对创建的每个新拉取请求运行自动化检查。
Travis CI和CircleCI都是优秀的持续集成工具。它们都允许您使用 YAML 文件配置 CI 流水线,从而实现基础设施即代码的编写。在 YAML 文件中,您可以指定要使用的 Docker 镜像、运行的 Node 版本以及安装和构建步骤等。
最重要的是,Travis CI 和 CircleCI 可以免费用于开源项目。
Jest 和 Codecov
接下来,我们来看看测试覆盖率。单元测试非常重要。它们有助于防止回归,为代码库提供动态文档,并使您能够自信地进行更改。
在持续集成 (CI) 流水线中,测试很容易强制执行。如果任何测试失败,则测试作业失败,并且拉取请求将被阻止合并,直到测试修复为止。
测试通过固然重要,但代码覆盖率同样至关重要。如果测试仅覆盖了 20% 的代码库,那么在进行任何更改后,剩余 80% 的代码库都处于良好状态,这一点无法得到合理的保证。更高的代码覆盖率意味着更少的 bug 隐藏空间。
像Jest 这样的测试框架可以让你收集代码覆盖率结果,还可以强制执行特定的代码覆盖率阈值。如果你想进一步利用这些覆盖率报告,可以将像Codecov这样的工具添加到你的持续集成 (CI) 流水线中。
Codecov 会获取 Jest 生成的数据,并将其转换为报告,您可以在拉取请求中直接查看这些报告。Codecov 可以帮助您了解每个拉取请求如何影响整体代码覆盖率,例如覆盖率是增加还是减少,以及哪些文件受到了影响。Codecov 可以轻松集成到您使用的任何 CI 工具中,无论是 Travis CI、CircleCI、GitHub Actions、GitLab CI、Jenkins 还是其他工具。
而且,CodeCov 可以免费用于开源项目。
SonarQube 和 SonarCloud
第三,我们来讨论静态分析检查器。像 ESLint 这样的代码检查工具对于任何项目来说都是必不可少的。代码检查工具非常适合强制执行最佳实践和公认的编码风格。
像SonarQube这样的静态分析工具除了能发现普通代码检查工具(linter)的功能外,还能提供更多有价值的信息。SonarQube 可以帮助识别代码异味、代码复杂度、代码重复和安全问题。
SonarQube 可以作为自托管服务运行,也可以在云端以SonarCloud 的形式运行。您还可以将 SonarQube 集成到 CI 流水线中,使其在您的拉取请求上发布评论。
Sonar 为企业和开源项目都提供解决方案。与我们之前讨论过的其他工具一样,SonarQube 和 SonarCloud 可供开源项目免费使用。
CodeSee 审查地图
第四,我们来探讨一下如何可视化我们的代码库以及我们在拉取请求中所做的更改。如果能知道每个更改的方法或文件如何影响应用程序中的其他功能,岂不是很好?
CodeSee 代码审查图可以帮助您直观地了解哪些文件发生了更改,以及这些更改如何影响上游和下游依赖项。通过与您的 GitHub 代码库集成,CodeSee 可以自动在每个拉取请求中添加评论和图表。
CodeSee 让您能够以逻辑顺序浏览已更改的文件,而不仅仅是按字母顺序查看。它甚至允许您(作为代码作者)创建代码的交互式导览,引导审查人员了解您的更改。
没错,CodeSee 代码审查地图可以免费用于开源项目。
GitHub Actions
第五,如果我们不提及GitHub Actions,那么这篇关于在 GitHub 中自动化部分代码审查的文章就不算完整。
GitHub Actions 允许您创建任何类型的流程。这些流程可以作为 GitHub 中的作业或检查运行,因此它们的功能类似于 Travis CI 或 CircleCI 等其他 CI 工具。
GitHub Actions Marketplace是一个寻找可在项目中使用的开源操作的好地方。您可以按类别筛选结果,例如“代码质量”、“代码审查”或“持续集成”。
先透露一下,这些类别中有几个有趣的操作引起了我的注意,那就是语义拉取请求和自动变基操作。
语义拉取请求操作“确保您的 PR 标题符合Conventional Commits 规范”,如果您压缩并合并拉取请求,然后在发布过程中依赖这些提交消息进行进一步的自动化,这将非常有用。
自动变基功能允许您通过/rebase在拉取请求上添加评论来轻松变基您的提交。变基变得如此简单!
借助 GitHub Actions,我们可以实现所有操作的自动化!而且——剧透一下——GitHub Actions 对公共仓库是免费的。
结论:5 个用于改进 GitHub 代码审查的工具
综上所述,以下是五种可以提升您在 GitHub 上代码审查体验的工具:
- Travis CI 或 CircleCI(用于持续集成)
- Jest 和 Codecov(用于代码覆盖率)
- SonarQube 和 SonarCloud(用于检测代码异味和安全问题)
- CodeSee 代码审查图(用于代码图)
- GitHub Actions(用于其他所有操作)
感谢阅读,祝您编程愉快!
文章来源:https://dev.to/thawkin3/tools-and-integrations-to-significantly-improve-code-review-in-github-emf




