プルリクエストの承認ルールを作成します - AWS CodeCommit

プルリクエストの承認ルールを作成します

プルリクエストの承認ルールを作成すると、コードを送信先ブランチにマージする前にプルリクエストの承認をユーザーにリクエストできるため、コードの品質が保証されます。プルリクエストを承認する必要があるユーザーの数を指定できます。ルールのユーザーの承認プールを指定することもできます。その場合、それらのユーザーからの承認のみがルールに必要な承認数にカウントされます。

注記

また、承認ルールテンプレートを作成することもできます。これにより、リポジトリ間で承認ルールの作成を自動化できます。詳細については、「」を参照してください。承認ルールテンプレートの操作.

以下を使用できます。 AWS CodeCommit コンソールまたは AWS CLI リポジトリの承認ルールを作成します。

プルリクエスト(コンソール)の承認ルールを作成します

コンソールを使用して、CodeCommit でプルリクエストの承認ルールを作成できます。CodeCommit リポジトリ.

  1. https://console.aws.amazon.com/codesuite/codecommit/home にある CodeCommit コンソールを開きます。

  2. リポジトリ、プルリクエストの承認ルールを作成するリポジトリの名前を選択します。

  3. ナビゲーションペインで、 プルリクエスト.

  4. 承認ルールを作成するプルリクエストをリストから選択します。オープンプルリクエストの承認ルールのみを作成できます。

    
      リポジトリのプル リクエストのリストは、 CodeCommit コンソール。
  5. プルリクエストで、 承認を選択し、次に 承認規則を作成.

  6. ルール名ルールにわかりやすい名前を付けて、ルールの目的を理解できるようにします。たとえば、プルリクエストをマージする前に 2 人のユーザーにプルリクエストの承認をリクエストする場合は、ルールに という名前を付けます。Require two approvals before merge.

    注記

    承認ルールの作成後に名前を変更することはできません。

    必要な承認数、必要な番号を入力します。デフォルトは1です。

    
      プルリクエストの承認ルールの作成
  7. (オプション)プルリクエストの承認を特定のユーザーグループから取得するように要求する場合は、 承認ルールメンバー、選択 追加. 内 承認者タイプ、次のいずれかを選択します。

    • IAM ユーザー名または想定ロール: このオプションは、 AWS サインインに使用したアカウントのアカウントID。名前のみが必要です。指定された名前と名前が一致する IAM ユーザーおよびフェデレーティッドアクセスユーザーの両方に使用できます。これは非常に強力なオプションで、柔軟性が大きく高まります。たとえば、 AWS アカウント 123456789012 このオプションを選択し、 Mary_Majorでは、次のすべてがそのユーザーからの承認としてカウントされます。

      • アカウントの IAM ユーザー (arn:aws:iam::123456789012:user/Mary_Major)

      • Mary_Major として IAM で識別されるフェデレーティッドユーザー (arn:aws:sts::123456789012:federated-user/Mary_Major)

      このオプションは、 CodeCommitReview ロール セッション名 Mary_Major (arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major)をワイルドカード(*Mary_Major)。ロール名を明示的に指定することもできます (CodeCommitReview/Mary_Major).

    • 完全認定ARN: このオプションでは、 IAM ユーザーまたは役割。このオプションは、他の AWS サービス(例: AWS Lambda および AWS CodeBuild. 想定される役割については、ARN形式は arn:aws:sts::AccountID:assumed-role/RoleName 役割と arn:aws:sts::AccountID:assumed-role/FunctionName 機能。

    選択する場合 IAM ユーザー名または想定ロール 承認者タイプとして、 、 IAM ユーザーまたは役割、またはユーザーまたは役割の完全修飾ARN。選択 追加 承認が必要な承認の数にカウントされるすべてのユーザーまたはロールを追加するまで、ユーザーまたはロールを追加します。

    どちらの承認者タイプでも、値にワイルドカード (*) を使用できます。たとえば、 IAM ユーザー名または想定ロール オプションを選択し、 CodeCommitReview/*、 の役割を引き受けているすべてのユーザー CodeCommitReview 承認プールにカウントされます。個々のロールセッション名は、必要な承認者数にカウントされます。このようにして、Mary_MajorとLi_Juanは、 CodeCommitReview。 詳細については、以下を参照してください。 IAM ARN、ワイルドカード、および形式。を参照してください。 IAM 識別子.

    注記

    承認ルールは、クロスアカウント承認をサポートしていません。

  8. 承認規則の設定が完了したら、 送信.

プルリクエストの承認ルールを作成します(AWS CLI)

AWS CLI コマンドを CodeCommit で使用するには、AWS CLI をインストールします。詳細については、「コマンドラインリファレンス」を参照してください。

で、プルリクエストの承認ルールを作成するにはCodeCommit リポジトリ

  1. 次のように指定して create-pull-request-approval-rule コマンドを実行します。

    • プルリクエストの ID (--id オプションを指定)。

    • 承認ルールの名前(--approval-rule-name オプション付き)。

    • 承認ルールの内容(--approval-rule-content オプション付き)。

    承認ルールを作成するときに、次のいずれかの方法で承認プールの承認者を指定できます。

    • CodeCommitApprovers(コードコミット承認者): このオプションは、 AWS アカウントとリソース。指定されたリソース名と一致する名前を持つ IAM ユーザーとフェデレーティッドアクセスユーザーの両方に使用できます。これは非常に強力なオプションで、柔軟性が大きく高まります。たとえば、 AWS アカウント 123456789012 および Mary_Majorでは、次のすべてがそのユーザーからの承認としてカウントされます。

      • アカウントの IAM ユーザー (arn:aws:iam::123456789012:user/Mary_Major)

      • Mary_Major として IAM で識別されるフェデレーティッドユーザー (arn:aws:sts::123456789012:federated-user/Mary_Major)

      このオプションは、 CodeCommitReview ロール セッション名 Mary_Major (arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major)をワイルドカード(*Mary_Major)。

    • 完全認定ARN: このオプションでは、 IAM ユーザーまたは役割。

    詳細については、以下を参照してください。 IAM ARN、ワイルドカード、および形式。を参照してください。 IAM 識別子.

    次の例では、 Require two approved approvers ID が のプルリクエストの場合 27。 ルールは、承認プールから2つの承認が必要であることを指定します。プールには、 CodeCommit 役割を引き受け CodeCommitReview123456789012 AWS アカウント。また、 IAM ユーザーまたは という名前の連合ユーザー Nikhil_Jayashankar すべて同じ AWS アカウント:

    aws codecommit create-pull-request-approval-rule --pull-request-id 27 --approval-rule-name "Require two approved approvers" --approval-rule-content "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"CodeCommitApprovers:123456789012:Nikhil_Jayashankar\", \"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}"
  2. このコマンドが正常に実行されると、次のような出力が生成されます。

    { "approvalRule": { "approvalRuleName": "Require two approved approvers", "lastModifiedDate": 1570752871.932, "ruleContentSha256": "7c44e6ebEXAMPLE", "creationDate": 1570752871.932, "approvalRuleId": "aac33506-EXAMPLE", "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"CodeCommitApprovers:123456789012:Nikhil_Jayashankar\", \"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major" } }