跳至主要内容

在合并拉取请求之前修复代码质量发现

在质量问题到达默认分支之前捕获并使用 Copilot Autofix 与 Copilot 云代理进行修复。

谁可以使用此功能?

具有 写入 访问权限的用户

GitHub 团队或 GitHub 企业云

注意

GitHub 代码质量目前处于公开预览阶段,可能会有变更。在公开预览期间,代码质量不会产生费用,但代码质量扫描会消耗 GitHub Actions 分钟数。

简介

本教程向您展示如何在拉取请求中使用 GitHub 代码质量来识别可能因更改无意中引入的代码质量问题,以及如何使用 Copilot Autofix 与 Copilot 云代理来处理和解决代码质量问题。

提前捕获问题的好处

提前捕获代码质量问题可以保持团队代码库的良好状态。GitHub 代码质量会检查您的代码是否存在

  • 可靠性:例如,逻辑错误、不安全的错误处理或可能导致应用崩溃或行为不可预期的竞争条件。通过及早解决此类问题,您可以使软件更加稳健可靠,提升用户体验。
  • 可维护性:例如,重复的代码、过于复杂的逻辑、未使用的变量或违反编码最佳实践的情况。修复这些问题可以使代码更整洁、易读,从而加快后续修改并降低风险。

1. 了解 GitHub 代码质量在拉取请求中的工作原理

当您打开拉取请求时,GitHub 代码质量会使用 CodeQL 自动扫描您的更改,以查找上述类似的质量问题。

CodeQL 扫描的结果会作为评论出现在您的拉取请求中,由 github-code-quality[bot] 留下。每条评论对应于您更改中检测到的特定代码质量问题,并提供建议的自动修复。

评论会根据严重程度标记(错误警告提示),以便您了解哪些问题最需要处理。

2. 根据严重程度优先修复

浏览评论,首先确定最高严重级别(“错误”)的问题。

如果没有“错误”级别的问题,请查找下一级别(“警告”)的问题,依此类推。

高严重性的问题表明更严重的代码质量缺陷,可能导致代码库的可靠性或可维护性问题。解决这些高严重性的问题,您就在为维护团队代码质量做出最有影响力的工作。

注意

如果拉取请求包含特定严重级别或更高的代码质量问题,仓库管理员可能已设置代码质量门禁,阻止合并。请参阅 解决拉取请求的阻塞

3. 利用 Copilot Autofix 或 Copilot 云代理修复问题

Copilot Autofix

拉取请求中的评论会提供一个建议的 自动修复,您可以直接将其提交到拉取请求。请仔细审查建议的自动修复在逻辑、安全性和风格方面的合理性,然后点击 提交建议

您无需 Copilot 许可证即可应用这些建议。

Copilot 云代理

另外,如果您拥有 Copilot 许可证,可以将修复工作委派给 Copilot 云代理。在拉取请求中发表评论并提及 @Copilot,请求 Copilot 修复检测到的问题。

Screenshot showing a PR comment that invoked Copilot cloud agent.

Copilot 会对您的评论回复一个眼睛表情 (👀),启动新的代理会话,并打开一个包含必要修复的拉取请求。

您可以跟踪 Copilot 云代理的工作

需要 Copilot 许可证才能调用 Copilot 云代理。
注册 Copilot

4. 驳回不相关的问题

如果某个问题在您的代码库上下文中不相关或不可操作,您可以将其驳回。常见的驳回原因包括

  • 该问题位于已不再维护的旧代码中。
  • 它是团队编码规范的已知例外。
  • 它是不会造成真实质量风险的误报。

驳回不相关的警报可让质量检查专注于有意义的问题。

5. 推送更改并等待扫描

在修复或驳回问题后,将更改推送到与拉取请求关联的分支。GitHub 代码质量会自动重新扫描您的更改,并相应更新拉取请求中的评论。

6. 查看仓库的代码质量评级

拥有写入权限的用户都可以查看仓库的整体代码质量评级,这些评级概括了默认分支上代码的可靠性和可维护性状态。

要查看仓库的评级,请转到仓库的 安全与质量 选项卡,展开侧边栏中的 代码质量,然后点击 标准发现

在合并拉取请求之前解决问题,您直接帮助维护了这些评级。

后续步骤

  • 在默认分支中处理代码质量问题,了解仓库的可靠性和可维护性评级。请参阅 提升仓库代码质量
  • 社区讨论中提供对 GitHub 代码质量的反馈。
© . This site is unofficial and not affiliated with GitHub, Inc.