查看 Amazon CodeCommit 存储库中的拉取请求 - Amazon CodeCommit
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon CodeCommit 现已不再向新客户提供。Amazon CodeCommit 的现有客户可以继续正常使用该服务。了解更多

查看 Amazon CodeCommit 存储库中的拉取请求

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

查看拉取请求(控制台)

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

  1. 打开 CodeCommit 控制台:https://console.aws.amazon.com/codesuite/codecommit/home

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

  3. 在导航窗格中,选择拉取请求

  4. 默认情况下,会显示所有处于打开状态的拉取请求的列表。

    Amazon CodeCommit 控制台中显示的拉取请求。
  5. 要更改显示筛选器,请从可用筛选器列表中选择:

    • 已打开的拉取请求(默认):显示状态为 Open (打开) 的所有拉取请求。

    • All pull requests (所有拉取请求):显示所有拉取请求。

    • Closed pull requests (已关闭的拉取请求):显示状态为 Closed (关闭) 的所有拉取请求。

    • My pull requests (我的拉取请求):显示您创建的所有拉取请求,而不考虑状态。这不会显示您注释过或参与的评论。

    • My open pull requests (我的打开的拉取请求):显示您创建的状态为 Open (打开) 的所有拉取请求。

    • My closed pull requests (我的已关闭拉取请求):显示您创建的状态为 Closed (已关闭) 的所有拉取请求。

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

查看拉取请求 (Amazon CLI)

要使用 Amazon CLI 命令操作 CodeCommit,请安装 Amazon CLI。有关更多信息,请参阅 命令行参考

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

  1. 要查看存储库中的拉取请求列表,请运行 list-pull-requests 命令,并且指定:

    • 要查看拉取请求的 CodeCommit 存储库的名称(使用 --repository-name 选项)。

    • (可选)拉取请求的状态(使用 --pull-request-status 选项)。

    • (可选)创建拉取请求的 IAM 用户的 Amazon 资源名称 (ARN)(使用 --author-arn 选项)。

    • (可选)可用于返回批量结果的枚举令牌(使用 --next-token 选项)。

    • (可选)对每个请求返回结果数的限制(使用 --max-results 选项)。

    例如,要列出在名为 MyDemoRepo 的 CodeCommit 存储库中由 ARN 为 arn:aws:iam::111111111111:user/Li_Juan 的 IAM 用户创建的状态为 CLOSED 的拉取请求,请运行以下命令:

    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 按照最近活动的顺序显示。

  2. 要查看某个拉取请求的详细信息,请运行带 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" } }
  3. 要查看拉取请求的审批状态,请运行 get-pull-request-approval-state 命令,并指定:

    • 拉取请求的 ID(使用 --pull-request-id 选项)。

    • 拉取请求的修订 ID(使用 --revision-id option))。您可以使用 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" } ] }
  4. 要查看某个拉取请求中的事件,请运行带 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" } ] }
  5. 要查看拉取请求是否存在合并冲突,请运行 get-merge-conflicts 命令,并指定:

    • CodeCommit 存储库的名称(使用 --repository-name 选项)。

    • 要在合并评估中使用的变更源的分支、标签、HEAD 或其他完全限定的引用(使用 --source-commit-specifier 选项)。

    • 要在合并评估中使用的变更目标的分支、标签、HEAD 或其他完全限定的引用(使用 --destination-commit-specifier 选项)。

    • 要使用的合并选项(使用 --merge-option 选项)

    例如,要查看在名为 MyDemoRepo 的存储库中的名为 my-feature-branch 的源分支的提示和名为 main 的目标分支的提示之间是否存在合并冲突,请运行以下命令:

    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" }