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