GitHub Code Quality 分析你的代码,找出质量和覆盖率方面的问题,并提供由 Copilot 提供支持、可一键应用的修复建议。 它在两个位置运行:
- 在拉取请求中,发现的问题会在代码合并前以行内注释的形式显示。 如果上传 Cobertura XML 覆盖率报告,覆盖率指标会显示更改是维护还是减少覆盖范围。 你可以通过规则集强制执行质量和覆盖率阈值,阻止不满足你的标准的拉取请求,从而避免新增质量债务不断累积。
- 在默认分支上,扫描会识别代码库中现有的质量欠债,并提供可直接应用的自动修复,或者将其分配给 Copilot云代理 代为解决。
检测将已知反模式的确定性 CodeQL 规则与 AI 驱动的分析相结合,用于解决存在于现有规则集之外的问题,包括查询尚未涵盖 CodeQL 的语言。
用例
下面是 GitHub Code Quality 在实践中的样子。
对于开发人员和团队:
- 开发人员会打开一个拉取请求 ,该请求引入了可靠性或可维护性问题。 Code Quality 发布说明问题的注释,并在合并代码之前提供一键式修复。 开发人员还会看到覆盖率指标的报告,并且可以一目了然地判断拉取请求是改进还是减少与默认分支相比的覆盖范围。
- 团队采用 AI 编码助手,并且需要确保生成的代码达到与手写代码相同的标准。 AI 驱动的分析可捕获基于规则的查询未写入的问题,而 CodeQL 规则涵盖定义完善的反模式。
- 一个团队继承了一个背负着多年积累质量欠债的大型代码库。 Code Quality 会扫描默认分支,并在仪表板上显示带有自动修复建议的发现结果,团队则将修复工作分配给 Copilot云代理,由其自动创建修复拉取请求。
适用于管理员和负责人:
- 工程负责人使用规则集设置覆盖率和质量阈值。 不符合条件的拉取请求将无法合并,因此不会新增质量债务或覆盖率债务。
- 管理员需要能够查看各个存储库的情况,以满足审计或合规报告的需要。 Code Quality 通过安全概述与安全工具一起报告,以便他们一目了然地查看整个组织的质量状况,确定哪些存储库需要注意,并使用标准 GitHub 审核控件和策略跟踪改进指标。
可用性和计费
使用成本由以下因素决定:
- 基于活跃提交者数量的按席位收取的许可证费用。
- AI 驱动的检测和 Copilot 驱动的自动修复,会消耗 GitHub AI Credits(无需 Copilot 许可证)。
- GitHub Actions 用于确定性 CodeQL 扫描的分钟数(如果您未使用自托管运行器)。
可选功能(例如将代码质量修复工作委托给 Copilot)需要 Copilot 许可证。
有关详细信息,请参阅“GitHub Code Quality 计费”。
支持的语言
Code Quality 使用以下 CodeQL语言执行基于规则的分析:
- C#
- Go
- Java
- JavaScript
- Python
- Ruby
- TypeScript
它还会对拉取请求以及仓库中近期更改过的代码执行由 AI 提供支持的分析,包括基于规则的查询不支持的语言。
后续步骤
- 对于企业: 确保企业中的存储库可以启用 Code Quality。 请参阅“允许在您的企业中使用 GitHub Code Quality”。
- 对于你的仓库或组织: 开启 Code Quality 即可开始生成结果。 请参阅“启用 GitHub Code Quality”。
- 在拉取请求中: 了解如何修复拉取请求中的代码质量问题。 请参阅“防止代码质量问题到达默认分支”。