创建拉取请求 - AWS CodeCommit

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

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

创建拉取请求

创建拉取请求有助于在您将代码更改合并到另一分支之前,让其他用户查看和审核您所做的更改。首先,您需要为代码更改创建一个分支,这称作拉取请求的源分支。在将这些更改提交并推送到存储库之后,您可以创建拉取请求将该分支 (源分支) 的内容与要在拉取请求关闭后将更改合并到的分支 (目的分支) 进行比较。

您可以使用 AWS CodeCommit 控制台或 AWS CLI 为存储库创建拉取请求。

创建拉取请求(控制台)

您可以使用 CodeCommit 控制台在 CodeCommit 存储库中创建拉取请求。如果您的存储库配置了通知,则订阅用户将在您创建拉取请求时收到电子邮件。

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

  2. 存储库中,选择要在其中创建拉取请求的存储库的名称。

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

    提示

    您也可以从分支代码创建拉取请求。

  4. 选择创建拉取请求

    在 CodeCommit 控制台中从“拉取请求”页面创建拉取请求。
  5. Create pull request 中,在 Source 中选择包含要审核的更改的分支。

  6. Destination (目标) 中,选择要在拉取请求关闭后将代码更改合并到的分支。

  7. 选择 Compare。将对两个分支进行比较,并显示它们之间的差异。还会执行分析以确定在拉取请求关闭时两个分支能否自动合并。

  8. 审核比较详细信息和更改以确保拉取请求包含您要审核的更改和提交。如果不包含,请调整您的源分支和目标分支选择,然后再次选择 Compare

  9. 在您对拉取请求的比较结果感到满意以后,在标题中为此审核输入一个简短的描述性标题。此标题显示在存储库的拉取请求列表中。

  10. (可选)在描述中,输入有关此审核的详细信息以及对审核者有用的任何其他信息。

  11. 选择 Create(创建)。

    创建拉取请求

拉取请求将显示在存储库的拉取请求列表中。如果您配置了通知,则该 Amazon SNS 主题的订阅者会收到电子邮件,通知他们新创建了拉取请求。

创建拉取请求 (AWS CLI)

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

使用 AWS CLI 在 CodeCommit 存储库中创建拉取请求

  1. 运行 create-pull-request 命令,并指定:

    • 拉取请求的名称(使用 --title 选项)。

    • 拉取请求的描述(使用 --description 选项)。

    • create-pull-request 命令的目标列表,包括:

      • 将在其中创建拉取请求的 CodeCommit 存储库的名称(使用 repositoryName 属性)。

      • 包含您要审核的代码更改的分支的名称,也称为源分支(使用 sourceReference 属性)。

      • (可选)如果您不想合并到默认分支,还需要提供要将代码更改合并到的分支(也称为目标分支)的名称(使用 destinationReference 属性)。

    • 客户端生成的唯一等幂令牌(使用 --client-request-token 选项)。

    此示例创建一个名为 Pronunciation difficulty analyzer 的拉取请求,其描述为 Please review these changes by Tuesday,并以 jane-branch 源分支为目标。拉取请求将合并到名为 MyDemoRepo 的 CodeCommit 存储库的默认分支 main 中:

    aws codecommit create-pull-request --title "Pronunciation difficulty analyzer" --description "Please review these changes by Tuesday" --client-request-token 123Example --targets repositoryName=MyDemoRepo,sourceReference=jane-branch
  2. 如果成功,该命令产生类似以下内容的输出:

    { "pullRequest": { "approvalRules": [ { "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"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", "originApprovalRuleTemplate": { "approvalRuleTemplateId": "dd3d22fe-EXAMPLE", "approvalRuleTemplateName": "2-approver-rule-for-main" }, "ruleContentSha256": "4711b576EXAMPLE" } ], "authorArn": "arn:aws:iam::111111111111:user/Jane_Doe", "description": "Please review these changes by Tuesday", "title": "Pronunciation difficulty analyzer", "pullRequestTargets": [ { "destinationCommit": "5d036259EXAMPLE", "destinationReference": "refs/heads/main", "repositoryName": "MyDemoRepo", "sourceCommit": "317f8570EXAMPLE", "sourceReference": "refs/heads/jane-branch", "mergeMetadata": { "isMerged": false } } ], "lastActivityDate": 1508962823.285, "pullRequestId": "42", "clientRequestToken": "123Example", "pullRequestStatus": "OPEN", "creationDate": 1508962823.285 } }