

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 檢視 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：//[https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) 開啟 CodeCommit 主控台。

1. 在 **Repositories (儲存庫)** 中，選擇您要檢視提取請求所在儲存庫的名稱。

1. 在導覽窗格中，選擇 **Pull requests (提取請求)**。

1. 依預設，會顯示所有開啟的提取請求清單。  
![\[提取 AWS CodeCommit 主控台中顯示的請求。\]](http://docs.aws.amazon.com/zh_tw/codecommit/latest/userguide/images/codecommit-pull-request-view-list.png)

1. 若要變更顯示篩選，請從可用的篩選清單中選擇：
   + **Open pull requests (開啟中的提取請求)** (預設)：顯示狀態為 **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>

若要搭配 CodeCommit 使用 AWS CLI 命令，請安裝 AWS CLI。如需詳細資訊，請參閱[命令列參考](cmd-ref.md)。

請依照下列步驟，使用 AWS CLI 在 CodeCommit 儲存庫中檢視提取請求。

1. 若要檢視儲存庫中提取請求的清單，請執行 **list-pull-requests** 命令，指定：
   + 您要檢視提取請求的 CodeCommit 儲存庫名稱 （使用 **--repository-name**選項）。
   + (選用) 提取請求的狀態 (使用 **--pull-request-status** 選項)。
   + （選用） 建立提取請求的 IAM 使用者的 Amazon Resource Name (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"]
   }
   ```

   提取請求 ID 會以最新活動的順序顯示。

1. 若要檢視提取請求的詳細資訊，請執行 **get-pull-request** 命令加上 **--pull-request-id** 選項，指定提取請求的 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 為 *8* 且修訂 ID 為 *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. 若要檢視提取請求中的事件，請執行 **describe-pull-request-events** 命令加上 **--pull-request-id** 選項，指定提取請求的 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** 選項) 

   例如，若要檢視名為 *my-feature-branch* 的來源分支和名為 *main* 的目的地分支在名為 的儲存庫中是否有任何合併衝突`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"
   }
   ```