

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

# 在 AWS CodeCommit 仓库中查看拉取请求
<a name="how-to-view-pull-request"></a>

您可以使用 AWS CodeCommit 控制台或查看仓库的 AWS CLI 拉取请求。默认情况下，虽然您只会看到处于打开状态的拉取请求，但您可以更改筛选器以查看所有拉取请求、仅查看关闭的请求、仅查看您创建的拉取请求等。

**Topics**
+ [查看拉取请求（控制台）](#how-to-view-pull-request-console)
+ [查看拉取请求 (AWS CLI)](#how-to-view-pull-request-cli)

## 查看拉取请求（控制台）
<a name="how-to-view-pull-request-console"></a>

您可以使用 AWS CodeCommit 控制台查看 CodeCommit 仓库中的拉取请求列表。通过更改筛选器，可以更改列表显示，使其仅显示一组特定的拉取请求。例如，您可以查看您创建的状态为 **Open** 的拉取请求列表，也可以选择不同的筛选器并查看您创建的状态为 **Closed** 的拉取请求。

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在 **Repositories (存储库)** 中，选择要在其中查看拉取请求的存储库的名称。

1. 在导航窗格中，选择**拉取请求**。

1. 默认情况下，会显示所有处于打开状态的拉取请求的列表。  
![\[拉取请求显示在 AWS CodeCommit 控制台中。\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-pull-request-view-list.png)

1. 要更改显示筛选器，请从可用筛选器列表中选择：
   + **已打开的拉取请求**（默认）：显示状态为 **Open (打开)** 的所有拉取请求。
   + **All pull requests** (所有拉取请求)：显示所有拉取请求。
   + **Closed pull requests** (已关闭的拉取请求)：显示状态为 **Closed (关闭)** 的所有拉取请求。
   + **My pull requests (我的拉取请求)**：显示您创建的所有拉取请求，而不考虑状态。这不会显示您注释过或参与的评论。
   + **My open pull requests (我的打开的拉取请求)**：显示您创建的状态为 **Open (打开)** 的所有拉取请求。
   + **My closed pull requests (我的已关闭拉取请求)**：显示您创建的状态为 **Closed (已关闭)** 的所有拉取请求。

1. 在显示列表中找到要查看的拉取请求时，将其选中。

## 查看拉取请求 (AWS CLI)
<a name="how-to-view-pull-request-cli"></a>

要将 AWS CLI 命令与一起使用 CodeCommit，请安装 AWS CLI。有关更多信息，请参阅 [命令行参考](cmd-ref.md)。

按照以下步骤使用 AWS CLI 来查看 CodeCommit 存储库中的拉取请求。

1. 要查看存储库中的拉取请求列表，请运行 **list-pull-requests** 命令，并且指定：
   + 您要在其中查看拉取请求的 CodeCommit 存储库的名称（带**--repository-name**选项）。
   + （可选）拉取请求的状态（使用 **--pull-request-status** 选项）。
   + （可选）创建拉取请求的 IAM 用户的 Amazon 资源名称 (ARN)（使用 **--author-arn** 选项）。
   + （可选）可用于返回批量结果的枚举令牌（使用 **--next-token** 选项）。
   + （可选）对每个请求返回结果数的限制（使用 **--max-results** 选项）。

   例如，要列出由名为 ARN *arn:aws:iam::111111111111:user/Li\$1Juan* 且状态为 IAM 用户在名为的 CodeCommit 仓库*CLOSED*中创建的拉取请求：`MyDemoRepo`

   ```
   aws codecommit list-pull-requests --author-arn arn:aws:iam::111111111111:user/Li_Juan --pull-request-status CLOSED --repository-name MyDemoRepo 
   ```

   如果成功，该命令产生类似以下内容的输出：

   ```
   {
      "nextToken": "",
      "pullRequestIds": ["2","12","16","22","23","35","30","39","47"]
   }
   ```

   拉取请求 IDs 按最近活动的顺序显示。

1. 要查看某个拉取请求的详细信息，请运行带 **--pull-request-id** 选项的 **get-pull-request** 命令，并指定该拉取请求的 ID。例如，要查看 ID 为的拉取请求的相关信息*27*：

   ```
   aws codecommit get-pull-request --pull-request-id 27
   ```

   如果成功，该命令产生类似以下内容的输出：

   ```
   {
       "pullRequest": {
           "approvalRules": [
               {
                   "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}",
                   "approvalRuleId": "dd8b17fe-EXAMPLE",
                   "approvalRuleName": "2-approver-rule-for-main",
                   "creationDate": 1571356106.936,
                   "lastModifiedDate": 571356106.936,
                   "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major",
                   "ruleContentSha256": "4711b576EXAMPLE"
               }
           ],
           "lastActivityDate": 1562619583.565,
           "pullRequestTargets": [
               {
                   "sourceCommit": "ca45e279EXAMPLE",
                   "sourceReference": "refs/heads/bugfix-1234",
                   "mergeBase": "a99f5ddbEXAMPLE",
                   "destinationReference": "refs/heads/main",
                   "mergeMetadata": {
                       "isMerged": false
                   },
                   "destinationCommit": "2abfc6beEXAMPLE",
                   "repositoryName": "MyDemoRepo"
               }
           ],
           "revisionId": "e47def21EXAMPLE",
           "title": "Quick fix for bug 1234",
           "authorArn": "arn:aws:iam::123456789012:user/Nikhil_Jayashankar",
           "clientRequestToken": "d8d7612e-EXAMPLE",
           "creationDate": 1562619583.565,
           "pullRequestId": "27",
           "pullRequestStatus": "OPEN"
       }
   }
   ```

1. <a name="get-pull-request-approval-state"></a>要查看拉取请求的审批状态，请运行 **get-pull-request-approval-state** 命令，并指定：
   + 拉取请求的 ID（使用 **--pull-request-id** 选项）。
   + 拉取请求的修订 ID（使用 **--revision-id option)**）。您可以使用 [get-pull-request](#get-pull-request) 命令获取拉取请求的当前修订 ID。

   例如，要查看 ID 为、修订版 ID 为的*8*拉取请求的批准情况*9f29d167EXAMPLE*：

   ```
   aws codecommit get-pull-request-approval-state --pull-request-id 8 --revision-id 9f29d167EXAMPLE
   ```

   如果成功，该命令产生类似以下内容的输出：

   ```
   {
       "approvals": [
           {
               "userArn": "arn:aws:iam::123456789012:user/Mary_Major",
               "approvalState": "APPROVE"
           }
       ]
   }
   ```

1. 要查看某个拉取请求中的事件，请运行带 **--pull-request-id** 选项的 **describe-pull-request-events** 命令，并指定该拉取请求的 ID。例如，要查看 ID 为的拉取请求的事件*8*：

   ```
   aws codecommit describe-pull-request-events --pull-request-id 8
   ```

   如果成功，该命令产生类似以下内容的输出：

   ```
   {
       "pullRequestEvents": [
           {
               "pullRequestId": "8",
               "pullRequestEventType": "PULL_REQUEST_CREATED",
               "eventDate": 1510341779.53,
               "actor": "arn:aws:iam::111111111111:user/Zhang_Wei"
           },
           {
               "pullRequestStatusChangedEventMetadata": {
                   "pullRequestStatus": "CLOSED"
               },
               "pullRequestId": "8",
               "pullRequestEventType": "PULL_REQUEST_STATUS_CHANGED",
               "eventDate": 1510341930.72,
               "actor": "arn:aws:iam::111111111111:user/Jane_Doe"
           }
       ]
   }
   ```

1. 要查看拉取请求是否存在合并冲突，请运行 **get-merge-conflicts** 命令，并指定：
   +  CodeCommit 存储库的名称（带**--repository-name**选项）。
   + 要在合并评估中使用的变更源的分支、标签、HEAD 或其他完全限定的引用（使用 **--source-commit-specifier** 选项）。
   + 要在合并评估中使用的变更目标的分支、标签、HEAD 或其他完全限定的引用（使用 **--destination-commit-specifier** 选项）。
   + 要使用的合并选项（使用 **--merge-option** 选项） 

   例如，要查看名为的源分支的尖端与名为的存储库*main*中名为*my-feature-branch*的目标分支之间是否存在任何合并冲突`MyDemoRepo`：

   ```
   aws codecommit get-merge-conflicts --repository-name MyDemoRepo --source-commit-specifier my-feature-branch --destination-commit-specifier main --merge-option FAST_FORWARD_MERGE
   ```

   如果成功，该命令返回类似以下内容的输出：

   ```
   {
       "destinationCommitId": "fac04518EXAMPLE",
       "mergeable": false,
       "sourceCommitId": "16d097f03EXAMPLE"
   }
   ```