

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# プルリクエストの承認ルールを作成する
<a name="how-to-create-pull-request-approval-rule"></a>

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

**注記**  
また、承認ルールテンプレートを作成することもできます。これにより、リポジトリ間であらゆるプルリクエストに適用される承認ルールの作成を自動化できます。詳細については、「[承認ルールテンプレートの操作](approval-rule-templates.md)」を参照してください。

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

**Topics**
+ [プルリクエストの承認ルールを作成する (コンソール)](#how-to-create-pull-request-approval-rule-console)
+ [プルリクエストの承認ルールを作成する (AWS CLI)](#how-to-create-pull-request-approval-rule-cli)

## プルリクエストの承認ルールを作成する (コンソール)
<a name="how-to-create-pull-request-approval-rule-console"></a>

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

1. [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) で CodeCommit コンソールを開きます。

1. [**Repositories (リポジトリ)**] で、プルリクエストの承認ルールを作成するリポジトリの名前を選択します。

1. ナビゲーションペインで、[**Pull Requests (プルリクエスト)**] を選択します。

1. 承認ルールを作成するプルリクエストをリストから選択します。オープンプルリクエストの承認ルールのみを作成できます。  
![CodeCommit コンソールのリポジトリのプルリクエストのリスト。](http://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. プルリクエストで、[**Approvals (承認)**] を選択し、[**Create approval rule (承認ルールの作成)**] を選択します。

1. [**Rule name (ルール名)**] で、ルールにわかりやすい名前を付けます。たとえば、プルリクエストをマージする前に 2 人のユーザーにプルリクエストの承認をリクエストする場合は、ルールに **Require two approvals before merge** という名前を付けます。
**注記**  
承認ルールの作成後に名前を変更することはできません。

   [**Number of approvals needed (必要な承認の数)**] に、必要な数値を入力します。デフォルトは 1 です。  
![プルリクエストの承認ルールの作成](http://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/images/codecommit-create-approval-rule.png)

1. （オプション）プルリクエストの承認を特定のユーザーグループからリクエストする場合は、[**Approval rule members (承認ルールのメンバー)**] で [**Add (追加)**] を選択します。[**Approver type (承認者のタイプ)**] で、次のいずれかを選択します。
   + [**IAM user name or assumed role**] (IAM ユーザー名または引き受けたロール): このオプションでは、サインインに使用したアカウントが AWS アカウント ID に事前入力され、名前のみが必要です。指定された名前と名前が一致する IAM ユーザーおよびフェデレーティッドアクセスユーザーの両方に使用できます。これは非常に強力なオプションで、柔軟性が大きく高まります。例えば、Amazon Web Services アカウント 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 Lambda や などの他の AWS のサービスで使用される引き受けたロールもサポートします 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 識別子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)を参照してください。
**注記**  
承認ルールは、クロスアカウント承認をサポートしていません。

1. 承認ルールの設定が完了したら、[**Submit (送信)**] を選択します。

 

## プルリクエストの承認ルールを作成する (AWS CLI)
<a name="how-to-create-pull-request-approval-rule-cli"></a>

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

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

+ 次のように指定して **create-pull-request-approval-rule** コマンドを実行します。
  + プルリクエストの ID (**--id** オプションを指定)。
  + 承認ルールの名前（**--approval-rule-name** オプション付き）。
  + 承認ルールの内容（**--approval-rule-content** オプション付き）。

  承認ルールを作成するときに、次のいずれかの方法で承認プールの承認者を指定できます。
  + **CodeCommitApprovers**: このオプションでは、アマゾン ウェブ サービスアカウントとリソースのみが必要です。指定されたリソース名と一致する名前を持つ IAM ユーザーとフェデレーティッドアクセスユーザーの両方に使用できます。これは非常に強力なオプションで、柔軟性が大きく高まります。例えば、アマゾン ウェブ サービスアカウント 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 識別子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)を参照してください。

  次の例では、ID が `27` のプルリクエストの `Require two approved approvers` という名前の承認ルールを作成します。ルールは、承認プールから 2 つの承認が必要であることを指定します。プールには、CodeCommit にアクセスし、`123456789012` アマゾン ウェブ サービスアカウントで **CodeCommitReview** のロールを引き受けるすべてのユーザーが含まれます。また、同じ アマゾン ウェブ サービスアカウントに 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/*\"]}]}"
  ```