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

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

审核拉取请求

您可以使用 Amazon CodeCommit 控制台审核拉取请求中包含的更改。您可以向请求、文件和特定代码行添加评论。您还可以回复其他用户所做的评论。如果存储库已配置通知,您将在用户回复您的评论或用户评论拉取请求时收到电子邮件。

您可以使用 Amazon CLI 评论拉取请求和回复评论。要审核更改,您必须使用 CodeCommit 控制台、git diff 命令或 diff 工具。

审核拉取请求(控制台)

您可以使用 CodeCommit 控制台审核 CodeCommit 存储库中的拉取请求。

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

  2. 存储库中,选择存储库的名称。

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

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

    
                        CodeCommit 控制台中显示的处于打开状态的拉取请求。
    注意

    您可以对已关闭或已合并的拉取请求进行注释,但不能合并或重新打开该请求。

  5. 在拉取请求中,选择 Changes

  6. 请执行下列操作之一:

    • 要为整个拉取请求添加一般注释,请在 Comments on changes (更改注释)New comment (新建注释) 中,输入注释,然后选择 Save (保存)。您可以使用 Markdown,也可以纯文本格式输入评论。

      
                                对拉取请求中更改的一般评论。
    • 要向提交中的文件添加评论,请在 Changes 中找到该文件的名称。选择显示在文件名旁的注释图标 ,输入注释,然后选择 Save (保存)

      
                                在拉取请求中添加对文件的评论。
    • 要向拉取请求中的已更改行添加评论,请在 Changes 中转到要评论的行。选择为该行显示的注释图标 ,输入注释,然后选择 Save (保存)

      
                                在拉取请求中添加对行的评论。
  7. 要回复对提交的评论,请在 ChangesActivity 中,选择 Reply。您可以使用文字和表情符号进行回复。

    
                        在评论中添加回复和表情符号反应。

    您可以通过选择特定表情符号反应回复来查看使用其进行回复的人员的姓名。要查看所有表情符号反应以及有关谁使用了哪些表情符号进行回复的信息,请选择查看所有反应。如果您使用表情符号回复了评论,则您的回复将显示在表情符号反应按钮的图标中。

    注意

    控制台中显示的反应计数在页面加载时是准确的。要了解有关表情符号反应计数的最新信息,请刷新页面,或选择查看所有反应

    
                        查看有关使用表情符号反应回复评论的用户的信息。
  8. (可选)要回复 Amazon CodeGuru Reviewer 创建的建议(包括对建议的质量提供反馈),请选择回复。可使用反应按钮,提供有关您是批准还是不批准建议的一般信息。您可使用注释字段,提供有关反应的详细信息。

    注意

    Amazon CodeGuru Reviewer 是一项自动代码审查服务,使用程序分析和机器学习来检测 Java 或 Python 代码中的常见问题并提供修复建议。

    • 只有当您将存储库与 Amazon CodeGuru Reviewer 关联,分析已完成,并且拉取请求中的代码是 Java 或 Python 代码时,才会看到 Amazon CodeGuru Reviewer 注释。有关更多信息,请参阅将Amazon CodeCommit存储库与 Amazon CodeGuru Reviewer 关联或取消关联

    • 仅当 Amazon CodeGuru Reviewer 注释针对的是拉取请求的最新修订时,这些注释才会显示在更改选项卡中。它们始终显示在活动选项卡中。

    • 虽然您可以使用任何可用的表情符号反应来回复 Amazon CodeGuru Reviewer 建议,但只能使用赞成和反对表情符号反应来评估建议的实用性。

    
                        Amazon CodeGuru Reviewer 创建的一个建议,一个审查任务正在进行中。
  9. 要审批拉取请求中所做的更改,请选择 Approve (审批)

    注意

    您无法批准自己创建的拉取请求。

    您可以在 Approvals (审批) 中,查看审批、拉取请求的审批规则以及由审批规则模板创建的审批规则。如果您最终决定不希望审批拉取请求,则可选择 Revoke approval (撤销审批)

    注意

    您只能对处于打开状态的拉取请求进行审批或撤销审批。不能对状态为“已合并”或“已关闭”的拉取请求进行审批或撤销审批。

    
                        拉取请求中的审批和审批规则。

审核拉取请求 (Amazon CLI)

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

您可以使用以下 Amazon CLI 命令审核拉取请求:

您还可以运行以下命令,对拉取请求中的评论使用表情符号:

使用 Amazon CLI 审核 CodeCom mit 存储库中的拉取请求

  1. 要向存储库中的拉取请求添加评论,请运行 post-comment-for-pull-request 命令,并且指定:

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

    • 包含拉取请求的存储库的名称(使用 --repository-name 选项)。

    • 将在其中合并拉取请求的目标分支中的提交的完整提交 ID(使用 --before-commit-id 选项)。

    • 源分支中的提交的完整提交 ID,它在发布评论时作为拉取请求的分支的当前提示(使用 --after-commit-id 选项)。

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

    • 您的评论的内容(使用 --content 选项)。

    • 有关评论放置位置信息的列表,包括:

      • 所比较文件的名称,包括其扩展名和子目录(如果有,则使用 filePath 属性)。

      • 在比较文件中更改的行号(使用 filePosition 属性)。

      • 对更改的评论在源分支与目标分支之间比较“之前”还是“之后”(使用 relativeFileVersion 属性)。

    例如,使用以下命令添加评论 "These don't appear to be used anywhere. Can we remove them?"。该评论是在名为 MyDemoRepo 的存储库内 ID 为47 的拉取请求中,针对 ahs_count.py 文件的更改所添加的评论。

    aws codecommit post-comment-for-pull-request --pull-request-id "47" --repository-name MyDemoRepo --before-commit-id 317f8570EXAMPLE --after-commit-id 5d036259EXAMPLE --client-request-token 123Example --content "These don't appear to be used anywhere. Can we remove them?" --location filePath=ahs_count.py,filePosition=367,relativeFileVersion=AFTER

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

    { "afterBlobId": "1f330709EXAMPLE", "afterCommitId": "5d036259EXAMPLE", "beforeBlobId": "80906a4cEXAMPLE", "beforeCommitId": "317f8570EXAMPLE", "comment": { "authorArn": "arn:aws:iam::111111111111:user/Saanvi_Sarkar", "clientRequestToken": "123Example", "commentId": "abcd1234EXAMPLEb5678efgh", "content": "These don't appear to be used anywhere. Can we remove them?", "creationDate": 1508369622.123, "deleted": false, "lastModifiedDate": 1508369622.123, "callerReactions": [], "reactionCounts": [] } "location": { "filePath": "ahs_count.py", "filePosition": 367, "relativeFileVersion": "AFTER" }, "repositoryName": "MyDemoRepo", "pullRequestId": "47" }
  2. 要查看拉取请求的评论,请运行 get-comments-for-pull-request 命令,并且指定:

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

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

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

    • (可选) 一个用于限制返回的结果数的非负整数 (使用 --max-results 选项)。

    例如,可使用此命令查看 ID 为 42 的拉取请求的注释。

    aws codecommit get-comments-for-pull-request --pull-request-id 42

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

    { "commentsForPullRequestData": [ { "afterBlobId": "1f330709EXAMPLE", "afterCommitId": "5d036259EXAMPLE", "beforeBlobId": "80906a4cEXAMPLE", "beforeCommitId": "317f8570EXAMPLE", "comments": [ { "authorArn": "arn:aws:iam::111111111111:user/Saanvi_Sarkar", "clientRequestToken": "", "commentId": "abcd1234EXAMPLEb5678efgh", "content": "These don't appear to be used anywhere. Can we remove them?", "creationDate": 1508369622.123, "deleted": false, "lastModifiedDate": 1508369622.123, "callerReactions": [], "reactionCounts": { "THUMBSUP" : 6, "CONFUSED" : 1 } }, { "authorArn": "arn:aws:iam::111111111111:user/Li_Juan", "clientRequestToken": "", "commentId": "442b498bEXAMPLE5756813", "content": "Good catch. I'll remove them.", "creationDate": 1508369829.104, "deleted": false, "lastModifiedDate": 150836912.273, "callerReactions": ["THUMBSUP"] "reactionCounts": { "THUMBSUP" : 14 } } ], "location": { "filePath": "ahs_count.py", "filePosition": 367, "relativeFileVersion": "AFTER" }, "repositoryName": "MyDemoRepo", "pullRequestId": "42" } ], "nextToken": "exampleToken" }
  3. 要对拉取请求进行审批或撤销审批,请运行 update-pull-request-approval-state 命令,并指定:

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

    • 拉取请求的修订 ID(使用 --revision-id option))。您可以使用 get-pull-request 命令获取拉取请求的当前修订 ID。

    • 要应用的审批状态(使用 --approval-state 选项)。有效的审批状态包括 APPROVEREVOKE

    例如,可使用此命令对 ID 为 27 且修订 ID 为 9f29d167EXAMPLE 的拉取请求进行审批。

    aws codecommit update-pull-request-approval-state --pull-request-id 27 --revision-id 9f29d167EXAMPLE --approval-state "APPROVE"

    如果成功,该命令不返回任何内容。

  4. 要在拉取请求中发布对评论的回复,请运行 post-comment-reply 命令,并且指定:

    • 要回复的评论的系统生成的 ID(使用 --in-reply-to 选项)。

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

    • 您的回复的内容(使用 --content 选项)。

    例如,使用以下命令将回复 "Good catch. I'll remove them." 添加到系统生成的 ID 为 abcd1234EXAMPLEb5678efgh 的评论中。

    aws codecommit post-comment-reply --in-reply-to abcd1234EXAMPLEb5678efgh --content "Good catch. I'll remove them." --client-request-token 123Example

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

    { "comment": { "authorArn": "arn:aws:iam::111111111111:user/Li_Juan", "clientRequestToken": "123Example", "commentId": "442b498bEXAMPLE5756813", "content": "Good catch. I'll remove them.", "creationDate": 1508369829.136, "deleted": false, "lastModifiedDate": 150836912.221, "callerReactions": [], "reactionCounts": [] } }