AWS CodeCommit は、新規顧客には利用できなくなりました。 AWS CodeCommit の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
プルリクエストの承認ルールを作成する
プルリクエストの承認ルールを作成すると、コードを送信先ブランチにマージする前にプルリクエストの承認をユーザーにリクエストできるため、コードの品質が保証されます。プルリクエストを承認する必要があるユーザーの数を指定できます。ルールのユーザーの承認プールを指定することもできます。その場合、それらのユーザーからの承認のみがルールに必要な承認数にカウントされます。
注記
また、承認ルールテンプレートを作成することもできます。これにより、リポジトリ間であらゆるプルリクエストに適用される承認ルールの作成を自動化できます。詳細については、「承認ルールテンプレートの操作」を参照してください。
AWS CodeCommit コンソールまたは AWS CLI を使用してリポジトリの承認ルールを作成できます。
プルリクエストの承認ルールを作成する (コンソール)
CodeCommit コンソールを使用して、CodeCommit リポジトリ内のプルリクエストの承認ルールを作成できます。
https://console.aws.amazon.com/codesuite/codecommit/home
で CodeCommit コンソールを開きます。 -
[Repositories (リポジトリ)] で、プルリクエストの承認ルールを作成するリポジトリの名前を選択します。
-
ナビゲーションペインで、[Pull Requests (プルリクエスト)] を選択します。
-
承認ルールを作成するプルリクエストをリストから選択します。オープンプルリクエストの承認ルールのみを作成できます。
-
プルリクエストで、[Approvals (承認)] を選択し、[Create approval rule (承認ルールの作成)] を選択します。
-
[Rule name (ルール名)] で、ルールにわかりやすい名前を付けます。たとえば、プルリクエストをマージする前に 2 人のユーザーにプルリクエストの承認をリクエストする場合は、ルールに
Require two approvals before merge
という名前を付けます。注記
承認ルールの作成後に名前を変更することはできません。
[Number of approvals needed (必要な承認の数)] に、必要な数値を入力します。デフォルトは 1 です。
-
(オプション)プルリクエストの承認を特定のユーザーグループからリクエストする場合は、[Approval rule members (承認ルールのメンバー)] で [Add (追加)] を選択します。[Approver type (承認者のタイプ)] で、次のいずれかを選択します。
[IAM user name or assumed role] (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
)。[Fully qualified ARN] (完全修飾 ARN): このオプションでは、IAM ユーザーまたはロールの完全修飾 Amazon リソースネーム (ARN) を指定できます。このオプションは、AWS や AWS Lambda などの 他の AWS CodeBuild サービスによって使用される委任ロールもサポートします。委任ロールの ARN 形式は、ロールの場合は
arn:aws:sts::
、関数の場合はAccountID
:assumed-role/RoleName
arn:aws:sts::
です。AccountID
:assumed-role/FunctionName
承認者のタイプとして [IAM user name or assumed role] (IAM ユーザー名または引き受けたロール) を選択した場合は、[Value] (値) に、IAM ユーザーまたはロールの名前またはユーザーかロールの完全修飾 ARN を入力します。承認が必要な承認の数にカウントされるすべてのユーザーまたはロールを追加するまで、[Add (追加)] を再度選択してユーザーまたはロールを追加します。
どちらの承認者タイプでも、値にワイルドカード (*) を使用できます。例えば、[IAM user name or assumed role] (IAM ユーザー名または引き受けたロール) オプションを選択し、
CodeCommitReview/*
を指定した場合、CodeCommitReview
のロールを引き受けるすべてのユーザーが承認プールにカウントされます。個々のロールセッション名は、必要な承認者数にカウントされます。このようにして、Mary_Major と Li_Juan は、サインインしてCodeCommitReview
のロールを引き受けるときに承認としてカウントされます。IAM ARN、ワイルドカード、および形式の詳細については、IAM 識別子を参照してください。注記
承認ルールは、クロスアカウント承認をサポートしていません。
-
承認ルールの設定が完了したら、[Submit (送信)] を選択します。
プルリクエストの承認ルールを作成する (AWS CLI)
CodeCommit で AWS CLI コマンドを使用するには、AWS CLI をインストールします。詳細については、「コマンドラインリファレンス」を参照してください。
CodeCommit リポジトリのプルリクエストの承認ルールを作成するには
-
次のように指定して 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
のロールを引き受けるユーザーのアクティブなセッションを認識しません。 -
-
[Fully qualified ARN] (完全修飾 ARN): このオプションでは、IAM ユーザーまたはロールの完全修飾 Amazon リソースネーム (ARN) を指定できます。
IAM ARN、ワイルドカード、および形式の詳細については、IAM 識別子を参照してください。
次の例では、
27
の ID でプルリクエストのRequire two approved approvers
という名前の承認ルールを作成します。ルールは、承認プールから 2 つの承認が必要であることを指定します。プールには、CodeCommit にアクセスし、CodeCommitReview
AWS アカウントで123456789012
のロールを引き受けるすべてのユーザーが含まれます。また、同じ AWS に IAM ユーザーまたはNikhil_Jayashankar
という名前のフェデレーティッドユーザーも含まれます。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/*\"]}]}" -
-
このコマンドが正常に実行されると、次のような出力が生成されます。
{ "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" } }