# 使用 AI 提高最近合并代码的质量

浏览最近合并代码的 GitHub Code Quality 结果，使用Copilot自动修复 修复或将修正工作委托给 Copilot云代理。

> \[!NOTE]
> GitHub Code Quality 当前正处于 公共预览版 阶段，并可能会发生变化。
> 在 公共预览版期间，Code Quality 不会计费，尽管 Code Quality 扫描将使用 GitHub Actions 分钟。

## 介绍

本教程介绍如何浏览和修正由 Code Quality 的 AI 分析最近合并到默认分支的代码时检测到的质量问题。

提高最近合并的文件的质量时，可减少存储库中的技术债务，并使其他开发人员更轻松地处理正在积极开发的文件。

###

```
          Code Quality 有两道防线

          Code Quality 扫描拉取请求并评论质量问题，然后在合并拉取请求后 **运行第二次 AI 扫描** 。 这两种类型的扫描使用互补技术：
```

* ```
            **拉取请求扫描**使用 CodeQL 规则来识别问题。 此分析经过全面测试，善于识别代码与质量规则不匹配的位置，并且可以分析许多文件。 但是，它支持一部分编码语言，并且无法识别不存在规则的问题。
  ```

* ```
            **最近合并文件扫描**使用大语言模型分析最近更改的文件，并报告最多 5 个文件的结果。 此分析检视所有语言的代码而不受规则限制，并提供可以超越CodeQL规则所能提供的上下文见解和建议。
  ```

### 先决条件

* Code Quality 已启用，请参阅 [启用 GitHub Code Quality](/zh/code-security/code-quality/how-tos/enable-code-quality)。
* 自 Code Quality 启用以来，至少有一个拉取请求已合并。

## 1.查看存储库的 AI 建议

对默认分支上最近合并的文件进行 Code Quality 扫描后，你可在 **AI 发现** 视图下查看结果，该视图显示最多个 5 文件的结果。

1. 请导航到您的存储库中的\*\*<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security and quality\*\* 选项卡。
2. 单击以展开 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code-review" aria-label="code review" role="img"><path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 13H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25v-8.5C0 1.784.784 1 1.75 1ZM1.5 2.75v8.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm5.28 1.72a.75.75 0 0 1 0 1.06L5.31 7l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.75.75 0 0 1 1.06 0Zm2.44 0a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L10.69 7 9.22 5.53a.75.75 0 0 1 0-1.06Z"></path></svg>代码质量**，然后单击 **AI 发现**。

> \[!NOTE]
> 如果存储库处于非活动状态，或者 LLM 分析无法建议在最近推送到默认分支时提高代码质量的方法，则此视图为空。

## 2. 浏览存储库的建议改进

在 **AI 发现** 页面上，列出了每个文件，包括识别出的质量问题数量和文件推送到默认分支的时间。

* 单击文件名可查看检测到的质量问题的详细信息和建议的修补程序。

![代码质量的“AI 发现”视图的屏幕截图。](/assets/images/help/code-quality/ai-suggestions-repo.png)

## 3. 委托修复工作或自行创建拉取请求

可以打开拉取请求，将建议的自动修复应用到文件，或将修正工作委托给 Copilot云代理。 需要 Copilot 许可证才能将工作分配给 Copilot云代理。 <br> <a href="https://github.com/features/copilot/plans?ref_product=copilot&ref_type=purchase&ref_style=button" target="_blank" class="btn btn-primary mt-3 mr-3 no-underline"> <span>注册 Copilot</span><svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-link-external" aria-label="link external icon" role="img"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a>

### 将工作委托给 Copilot云代理

你可请求 云代理 打开拉取请求，以建议更改作为提示改进文件。 如果建议的更改看起来不错，并且你想要打开一个将修补程序应用于多个文件的拉取请求，则这是最佳选择。

要委托拉取请求创建：

* **多个文件：** 选择要包含的文件，然后在文件列表的标头中单击**将所选内容分配给Copilot**。
* **一个文件：** 单击 **将文件分配给 Copilot**。

当 云代理 设置工作时会有延迟。 当拉取请求处于打开状态并且工作正在进行时，将显示一个横幅，其中包含拉取请求的链接。

可以跟踪 Copilot云代理'工作：

* 在拉取请求中，摘要会随着工作推进而更新。
* 使用 [代理页](https://github.com/copilot/agents?ref_product=copilot\&ref_type=engagement\&ref_style=text) 或会话日志。 请参阅“[跟踪 GitHub Copilot 的会话](/zh/copilot/how-tos/use-copilot-agents/cloud-agent/track-copilot-sessions)”。

### 自行创建拉取请求

您可以自行打开拉取请求并应用自动修复建议。 这是最佳选择如果：

* 你希望在打开拉取请求前在本地或 GitHub Desktop 中处理更改
* 您无权访问 Copilot云代理

> \[!NOTE]
> 自行创建拉取请求时，一次只能提交对一个文件的修复。 若要一次性修复多个文件，必须使用 Copilot云代理。

#### 打开拉取请求

1. 单击文件名可查看检测到的质量问题的详细信息。

2. 审查问题和建议的解决方案。

3. 展开 **“分配到 Copilot** ”下拉列表，然后单击“ <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-pull-request" aria-label="Pull request" role="img"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path></svg>**打开拉取请求** ”，将默认选项更改为“打开拉取请求”。 你的偏好已被记住。

   ![代码质量的“AI 发现”视图的屏幕截图。](/assets/images/help/code-quality/ai-suggestions-repo-fixes.png)

4. 单击“ **打开拉取请求** ”以打开提交选项对话框。

5. 单击 **“提交更改**”以创建带有修复的拉取请求。

## 4. 为拉取请求的审阅者提供背景信息

提供关于你建议更改代码的原因的上下文是鼓励团队成员查看拉取请求的最佳方式。 如果您使用了 Copilot云代理，则拉取请求摘要已经包括了该拉取请求修复的问题的完整详细信息。

如果直接从 GitHub Code Quality 视图中打开拉取请求，拉取请求摘要会链接到“AI 发现”视图。 可以考虑将 AI 发现 视图中的一些说明复制到拉取请求摘要中。

![GitHub Code Quality 创建的拉取请求摘要的屏幕截图。](/assets/images/help/code-quality/user-pr-ai-findings.png)

## 5. 查看所做的更改对 AI 发现

产生影响

合并拉取请求后返回“AI 发现”视图时，已修复的结果不再列出。

## 后续步骤

* 详细了解如何 Copilot云代理 帮助加快开发任务。 请参阅“[使用GitHub Copilot处理任务的最佳做法](/zh/copilot/tutorials/cloud-agent/get-the-best-results)”。
* 在<c1>社区讨论</c1>中提供关于<c0>的反馈。