

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 GitHub 中使用 Amazon Q 开发者版进行代码审查
<a name="github-code-reviews"></a>

**注意**  
GitHub 版 Amazon Q 开发者版目前处于预览发布阶段，功能可能会发生变更。

Amazon Q 开发者版支持在 GitHub 内进行自动化代码审查。当您创建新的拉取请求或重新打开已关闭的拉取请求时，Amazon Q 开发者版会自动执行代码审查，并针对代码质量、潜在问题及高严重性问题提供反馈。每次审查都会生成一份代码审查摘要，其中按主题分类列出发现的问题。Amazon Q 开发者版还会为已识别的问题生成修复方案，您可查看并选择是否将其提交到拉取请求中。在拉取请求的评论中，您可以使用 `/q` 命令提问，就代码审查发现的问题进行交互。现有拉取请求内后续提交的代码不会触发自动审查。

**注意**  
Amazon Q 开发者控制台中的 “代码审查” 功能设置控制在创建或重新打开拉取请求时运行的自动代码审查。在拉取请求注释中使用`/q review`斜杠命令启动代码审查不受此设置的影响。

您也可以在拉取请求中使用 `/q review` 斜杠命令启动代码审查。该斜杠命令可添加到新的拉取请求评论中，针对拉取请求当前状态（包括所有评论和新提交）启动新的代码审查。有关更多信息，请参阅 [在 GitHub 拉取请求中启动代码审查](#github-code-reviews-in-pr)。

您每月可使用 Amazon Q 开发者版审查有限行数的代码。您可以随时通过使用您的 AWS 账户注册安装的 Amazon Q Developer 应用程序来增加免费使用量。有关更多信息，请参阅 [在 Amazon Q 开发者版控制台中提高使用限额并配置的详细信息](github-register-app-install.md)。

**注意**  
若此前已禁用代码审查功能，需先在 [Amazon Q 开发者版控制台](https://us-east-1.console.aws.amazon.com/amazonq/developer/home#/github)中启用该功能，才能在 GitHub 中使用相关标签。有关更多信息，请参阅 [在 GitHub 中编辑 Amazon Q 开发者版功能](github-configuration.md#github-edit-features)。

## 先决条件
<a name="github-code-reviews-prerequisites"></a>

要使用 Amazon Q 开发者版启动代码审查，您需要具备目标 GitHub 存储库的相应权限。支持的存储库角色为“写入”权限、“维护”权限或“管理员”权限。拥有“读取”权限或“分类”权限的用户，以及无权限的成员，无法使用 Amazon Q 开发者版启动代码审查。

拥有“分类”权限的 GitHub 用户仍可审查存储库中的拉取请求。对于公共存储库，任何用户（无论角色如何）均可审查拉取请求。

有关更多信息，请参阅《GitHub 文档》**中的[组织的存储库角色](https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization#repository-roles-for-organizations)和[预定义组织角色介绍](https://docs.github.com/en/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#about-pre-defined-organization-roles)。

## 为 GitHub 拉取请求启动代码审查
<a name="github-new-code-reviews-pr"></a>

当您打开新的拉取请求或重新打开之前关闭的拉取请求时，Amazon Q 开发者版会自动运行代码审查，并针对代码质量、潜在问题及关键问题提供反馈。

**要使用 Amazon Q 开发者版进行代码审查并应用修复方案，请执行以下步骤：**

开始审查前，您可以在 `project-root/.amazonq/rules` 目录下的简单 Markdown 文件中定义自定义编码标准，从而自定义代码质量审查准则。Amazon Q 会自动遵循这些准则，确保在整个项目中提供一致的代码质量。有关更多信息，请参阅 [在第三方平台中为 Amazon Q 开发者版创建项目规则](third-party-context-project-rules.md)。

1. 如有需要，可使用您的 GitHub 凭证登录 [https://github.com/](https://github.com/) 账户。

1. 导航至您的 GitHub 组织，然后转至您希望使用 Amazon Q 开发者版进行代码审查的存储库。

1. 为源代码的变更创建新的拉取请求。有关更多信息，请参阅《GitHub 文档》**中的[创建拉取请求](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request)。

   创建新拉取请求后，Amazon Q 开发者版会自动开始代码审查以发现潜在问题。审查完成后，Amazon Q 开发者版会生成一份代码审查摘要。每个发现的问题会以主题评论的形式显示在摘要下方，同时附带可提交到拉取请求的建议修复方案。

1. 要求代理实施更改并直接在拉取请求的源分支上创建提交。为此，您可以发布一条以自然语言开头的评论，`/q`然后是您的自然语言请求代理进行更改。

1. （可选）就发现的具体问题提问。在拉取请求页面中，导航至**添加评论**，在评论文本输入字段中输入 `/q` 并附上您的问题（例如：“`/q explain the importance of this finding`”）。

1. 查看 Amazon Q 开发者版提出的代码更改建议，选择**提交建议**，然后选择**提交更改**以更新拉取请求。

1. 如果您对建议的代码修复方案感到满意，可合并拉取请求，应用 Amazon Q 开发者版建议的代码更改。有关更多信息，请参阅《GitHub 文档》**中的[合并拉取请求](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request)。

## 在 GitHub 拉取请求中启动代码审查
<a name="github-code-reviews-in-pr"></a>

在 Amazon Q 开发者版针对新创建或重新打开的 GitHub 拉取请求完成自动审查后，您可以使用 `/q review` 斜杠命令启动额外的代码审查，对代码进行迭代优化。此次审查将针对拉取请求的完整差异内容进行。

**注意**  
只能在拉取请求中针对新评论启动代码审查。`/q review` 斜杠命令在现有评论线程中无效。使用 `/q review` slash 命令启动代码审查不受 Amazon Q 开发者控制台中的 “代码审查” 功能设置的影响。

**要在拉取请求中使用启动代码审查，请执行以下步骤：**

1. 如有需要，可使用您的 GitHub 凭证登录 [https://github.com/](https://github.com/) 账户。

1. 导航至您的 GitHub 组织，然后转至您希望使用 Amazon Q 开发者版进行代码审查的拉取请求。有关更多信息，请参阅[关于拉取请求](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)。

1. 在“拉取请求”页面中，导航至**添加评论**区域，在评论文本输入字段中输入 `/q review`。

1. 选择**评论**以启动代码审查。

   Amazon Q 开发者版可能需要几分钟时间完成拉取请求代码的分析工作。分析完成后，Amazon Q 开发者版会生成一份代码审查摘要。每个发现的问题会以主题评论的形式显示在摘要下方，同时附带可选择提交以更新拉取请求的建议更改。

1. （可选）就发现的具体问题提问。在拉取请求页面中，导航至**添加评论**，在评论文本输入字段中输入 `/q` 并附上您的问题（例如：“`/q explain the importance of this finding`”）。

1. 如果您对建议的代码修复方案感到满意，可合并拉取请求，应用 Amazon Q 开发者版建议的代码更改。有关更多信息，请参阅《GitHub 文档》**中的[合并拉取请求](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request)。