注意
GitHub Code Quality 目前处于 公开预览 阶段,并将于 2026 年 7 月 20 日正式发布。
公开预览 期间,Code Quality 将不会被计费,尽管 Code Quality 扫描会消耗 GitHub Actions 分钟。 从 2026 年 7 月 20 日起,使用费将产生费用。 请参阅“GitHub Code Quality 计费”。
概述
GitHub Code Quality 有助于确保代码库可靠、可维护且高效。 无论是构建新功能、减少技术债务还是报告存储库运行状况, Code Quality 都可以提供可操作的见解和自动修复,以便可以有效地改进和维护存储库的代码运行状况。
主要功能和优势
通过 Code Quality,您可以:
- 确定 拉取请求 和 存储库扫描中的代码质量风险和机会。
- 查看结果的清晰说明,并应用一键式 Copilot 自动修复。
- 使用 存储库仪表板 跟踪可靠性和可维护性分数,确定需要注意的领域,并确定修正的优先级。
- 监视 组织仪表板 ,以便一目了然地了解存储库的代码运行状况,并确定要进一步调查的存储库。
- 为拉取请求设置 规则集 ,以强制实施代码质量标准,并阻止不符合条件的更改。 还可以通过规则集强制执行覆盖率阈值,以阻止不满足最低覆盖率要求的拉取请求,或阻止导致覆盖率下降幅度超过允许范围的拉取请求。
- 上传 代码覆盖率 报告,以便直接查看拉取请求的测试覆盖率指标,帮助审阅者识别未经测试的代码。
- 如果拥有Copilot云代理许可证,可以轻松将修正工作分配给****。
可用性和使用成本
GitHub Code Quality 适用于 GitHub Team 上组织拥有的存储库和 GitHub Enterprise Cloud 计划。
GitHub Code Quality 目前处于 公开预览 阶段,并将于 2026 年 7 月 20 日正式发布。 在 公开预览 期间,Code Quality 扫描将占用 GitHub Actions 分钟,但您无需为其他使用量付费。 从 2026 年 7 月 20 日起,使用将产生额外费用。 请参阅“GitHub Code Quality 计费”。
如果想要避免费用,请在 2026 年 7 月 20 日之前禁用 Code Quality 。 请参阅“禁用 GitHub Code Quality”。
注意
无需 Copilot 或 Code Security 许可证,即可使用 Code Quality 或应用 Copilot 自动修复。
支持的语言
Code Quality 使用以下 CodeQL语言执行基于规则的分析:
- C#
- Go
- Java
- JavaScript
- Python
- Ruby
- TypeScript
Code Quality 还执行 AI 驱动的分析,结果在“AI 发现”存储库仪表板上单独显示。 与扫描整个代码库和拉取请求的基于 CodeQL 规则的分析不同,这种由 AI 驱动的分析仅检查最近推送到默认分支的文件,并可能识别上述语言以外的语言问题。 有关详细信息,请参阅“应用卡片:GitHub 安全与质量 AI 功能”。
结果会在哪里出现?
为存储库启用 Code Quality 后,你将看到 CodeQL 扫描:
- 针对默认分支打开的每个新拉取请求
- 默认分支的所有现有拉取请求在更新时(触发 CI 测试新运行)
- “代码质量”设置页上显示的日期和时间,默认分支上的整个代码库
此外,你还将看到对所有最近推送到默认分支的代码的 AI 驱动分析结果。
拉取请求结果
当CodeQL在拉取请求中发现基于规则的问题时,您将看到github-code-quality[bot]的注释。 如果可能,每个注释都将包含 Copilot自动修复 有关如何解决问题的建议。 请参阅“在合并拉取请求之前修复代码质量问题”。
如果已设置代码覆盖率, github-code-quality[bot] 则还会发布覆盖率摘要,其中显示 PR 分支与默认分支相比的聚合覆盖率百分比。 请参阅“解读存储库的代码质量评估结果”。
默认分支结果
Code Quality 默认分支上的结果会在存储库 代码质量 选项卡的“ Security and quality”页上报告:
- 常规发现 显示 CodeQL 质量分析结果。 请参阅“提高存储库代码的质量”。
- AI 发现 显示对最近推送到默认分支的文件的 AI 分析结果。 请参阅“使用 AI 提高最近合并代码的质量”。
扫描信息
每次 CodeQL 分析将使用 GitHub Actions 分钟,可在存储库的“操作”**** 选项卡上作为动态“代码质量”工作流的运行查看。
赋能如何在整个企业中发挥作用
Code Quality 在三个层级进行控制,因此,您可以决定赋予组织和存储库多大的自主权:
- 企业: 企业所有者必须先为企业启用 Code Quality。 在这样做之前,组织所有者无法启用它。
- 组织: 组织所有者通过授予对所有存储库、所选列表或与筛选器匹配的存储库的访问权限来控制哪些存储库已启用 Code Quality 或禁用。 它们还可以强制实施这些设置,以便存储库管理员无法更改这些设置。
- 存储库: 除非组织级别强制实施,否则存储库管理员可以为单个存储库启用或禁用 Code Quality 存储库。
在存储库中启用 Code Quality 后,CodeQL 分析将通过 GitHub Actions 运行,并在拉取请求和默认分支中显示发现结果。 开发人员可以查看其拉取请求中的质量检查和批注。
组织级存储库访问权限
在组织级别,你可以通过单个存储库访问设置来控制Code Quality。 此设置确定已启用哪些存储库,以及哪些存储库已 Code Quality 禁用:启用所选内容中的存储库,并且禁用所选内容之外的存储库。
重要
更改 存储库访问 设置可以同时在多个存储库中启用 和 禁用 Code Quality 。 例如,如果启用 Code Quality 与筛选器匹配的存储库,则禁用与筛选器不匹配的任何存储库。 在应用更改之前,对话框会显示已启用和禁用的存储库总数以及计费影响。
存储库访问选项
每次只能应用以下选项中的一项。
| Option | Behavior |
|---|---|
| 无存储库 | |
| Code Quality禁用组织中所有当前和将来的存储库。 | |
| 让存储库决定 | 组织既不能启用或禁用 Code Quality。 存储库管理员选择是否为其自己的存储库启用它。 无法强制执行此选项。 |
| 所有存储库 | 为所有当前和将来的存储库启用 Code Quality 。 |
| 所选存储库 | 为你选择的特定存储库列表启用 Code Quality。 未选择的存储库处于禁用状态,并且不会自动启用新存储库。 最适用于试点或例外情况。 |
| 匹配筛选器 | 为符合你定义的筛选条件的存储库启用 Code Quality,当前及未来均适用。 禁用不匹配的存储库。 请参阅 筛选存储库。 |
筛选存储库
选择 “匹配筛选器”时,会创建一个动态筛选器,该筛选器会自动 Code Quality 启用与条件匹配的现有和将来的存储库。 这对于大规模持续治理非常有用。
可以筛选以下条件的任意组合:
- 可见性: 存储库是公开、私有还是内部。 适用于广泛的策略,例如为所有专用存储库启用 Code Quality 。
- 分叉状态: 存储库是否为分支。 在不希望分叉占用分析资源时,这会很有用。
- 自定义属性: 存储库是否具有特定的自定义属性值。 例如,可以将具有属性的
team:platform存储库作为目标。
筛选器中的所有条件都结合在一起 AND,因此存储库必须与要启用的每个条件匹配。 还可以排除与特定条件匹配的存储库。
强制执行访问控制
默认情况下,存储库管理员可以更改 Code Quality 其自己的存储库的设置。 若要防止出现这种情况,请启用 “强制实施访问”。
强制执行会锁定由您的 存储库访问 选项设定的启用和禁用状态,因此存储库管理员无法覆盖这些设置。 这样可以提高整个组织的一致性,但可降低单个存储库管理员的灵活性。
- 强制措施适用于你选择的大多数 存储库访问 选项,包括 “无存储库”(强制 Code Quality 禁用)。
- 使用 由存储库自行决定 时,无法进行强制实施,因为该选项本就有意将选择权留给存储库管理员。
规划部署
由于启用 Code Quality 一次会影响许多存储库,每个分析都会消耗 GitHub Actions 几分钟时间,因此请规划如何在组织中推出它:
- 从试点组开始。 首先启用一组具有代表性的小型存储库(例如,通过单独选择存储库或匹配自定义属性),以便在展开之前验证结果。
- 检查您的GitHub Actions容量。 在大规模启用 Code Quality 之前,请先确认你的运行器能够承受额外负载。
- 决定是否强制启用。 强制实施提供一致的覆盖范围,并阻止存储库管理员选择退出,但它消除了其灵活性。 在试点期间暂不启用强制执行,让团队在学习和摸索过程中可以自主选择加入或退出。
- 确认结果可靠后再展开。 确认分析运行顺利且开发人员了解调查结果后,请扩大选择或筛选器,以涵盖更多存储库。
后续步骤
- 对于你的仓库或组织: 开启 Code Quality 即可开始生成结果。 请参阅“启用 GitHub Code Quality”。
- 对于企业: 确保企业中的存储库可以启用 Code Quality。 请参阅“允许在企业中使用 GitHub Code Quality。”。