

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

# AWS CodeCommit リポジトリでのプルリクエストの使用
<a name="pull-requests"></a>

プルリクエストは、お客様と他のリポジトリーユーザーが、ブランチから別のブランチへのコード変更を確認、コメント、およびマージすることができる主な方法です。プルリクエストを使用すると、わずかな変更や修正、主要な機能の追加、リリースされたソフトウェアの新しいバージョンのコード変更を共同で確認することができます。プルリクエストの考えられるワークフローを以下に示します。

MyDemoRepo というリポジトリで作業するデベロッパーの Li Juan は、製品の今後のバージョンの新機能を開発したいと考えています。作業を本稼働環境に使用できるコードから分離するために、彼女はブランチをデフォルトブランチから作成し、それを {{feature-randomizationfeature}} と命名します。コードを書き込み、コミットし、このブランチに新機能コードをプッシュします。変更をデフォルトブランチにマージする前に、他のリポジトリーユーザーに、品質のためにコードを確認してほしいと考えます。これを行うために、プルリクエストを作成します。プルリクエストには、作業ブランチと、変更をマージする予定のコードのブランチ (この場合はデフォルトブランチ) との比較が含まれています。また、プルリクエストを承認するために指定した数のユーザーをリクエストする承認ルールを作成することもできます。また、ユーザーの承認プールを指定することもできます。他のユーザーは、自分のコードと変更内容を確認し、コメントや提案を追加します。コメントに応じてコードの変更を加えて作業ブランチを何度も更新するかもしれません。彼女の変更は、CodeCommit のブランチにプッシュされるたびにプルリクエストに組み込まれます。プルリクエストが開かれている間に、意図した送信先ブランチに加えられた変更を組み込むこともできるため、ユーザーは提案されたすべての変更をコンテキストで確実に確認できます。レビュー担当者が満足し、承認ルールの条件（存在する場合）が満たされると、レビュー担当者またはレビュー担当者の 1 人がコードをマージして、プルリクエストをクローズします。

![プルリクエストの作成](http://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/images/codecommit-pull-request-create.png)


プルリクエストには 2 つのブランチが必要です。レビューするコードを含む送信元ブランチと、レビュー済みのコードをマージする送信先ブランチです。送信元ブランチには、AFTER コミットが含まれています。これは、送信先ブランチにマージする変更が含まれるコミットです。送信先ブランチには、BEFORE コミットが含まれています。これは、コードの「前」の状態を表しています（プルリクエストブランチが送信先ブランチにマージされる前）。マージ戦略の選択は、CodeCommit コンソール内の送信元ブランチと送信先ブランチ間でどのようにコミットがマージされるかについての詳細に影響します。CodeCommit 内でのマージ戦略の詳細については、[プルリクエストをマージする (コンソール)](how-to-merge-pull-request.md#how-to-merge-pull-request-console) を参照してください。

![コミット前とコミット後の関係を示す、プルリクエストの送信元ブランチと送信先ブランチ](http://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/images/codecommit-pull-request-concepts.png)


プルリクエストには、プルリクエストの作成時に送信元ブランチの先端と送信先ブランチの最新コミット間の相違点が表示されるため、ユーザーは変更を表示してコメントを追加できます。送信元ブランチへの変更をコミットしてプッシュすることによって、コメントに応じてプルリクエストに更新できます。

![プルリクエスト内の行に対するコメントの追加。](http://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/images/codecommit-pull-request-comment.png)


コードが確認され、承認ルールの要件（ある場合）が満たされたら、次のいずれかの方法でプルリクエストをクローズすることができます。
+ ブランチをローカルでマージし、変更をプッシュします。これにより、早送りマージ戦略が使用され、マージの競合がない場合、リクエストは自動的に閉じられます。
+  AWS CodeCommit コンソールを使用して、マージせずにプルリクエストを閉じたり、マージの競合を解決したり、競合がない場合は、利用可能なマージ戦略のいずれかを使用してブランチを閉じてマージしたりできます。
+  AWS CLIを使用します。

プルリクエストを作成する前に、次の操作を実行します。
+ レビュー対象であるコードの変更をブランチ (送信元ブランチ) にコミットしてプッシュしたことを確認する。
+ 他のユーザーにプルリクエストとその変更について通知できるようにリポジトリの通知を設定する (このステップはオプションですが推奨されます)。
+ 承認ルールテンプレートを作成してリポジトリに関連付けます。これにより、コードの品質を確保するためにプルリクエストに対して承認ルールが自動的に作成されます。詳細については、「[承認ルールテンプレートの操作](approval-rule-templates.md)」を参照してください。

プルリクエストは、アマゾン ウェブ サービスアカウントのリポジトリユーザー用に IAM ユーザーを設定するとさらに効果的です。どのユーザーがどのコメントを行ったかを簡単に識別できます。もう 1 つの利点は、IAM ユーザーがリポジトリへのアクセスに Git 認証情報を使用できることです。詳細については、「[ステップ 1: CodeCommit の初期設定](setting-up-gc.md#setting-up-gc-account)」を参照してください。フェデレーティッドアクセスユーザーを含む他の種類のユーザーとのプルリクエストを使用できます。

CodeCommit でリポジトリの他の部分を操作する方法については、[ リポジトリを操作する](repositories.md)、[承認ルールテンプレートの操作](approval-rule-templates.md) 、[ファイルの操作](files.md)、[コミットの操作](commits.md)、[ブランチの操作](branches.md)、および [ユーザー設定の操作](user-preferences.md) を参照してください。

**Topics**
+ [プルリクエストの作成](how-to-create-pull-request.md)
+ [プルリクエストの承認ルールを作成する](how-to-create-pull-request-approval-rule.md)
+ [AWS CodeCommit リポジトリでプルリクエストを表示する](how-to-view-pull-request.md)
+ [プルリクエストのレビュー](how-to-review-pull-request.md)
+ [プルリクエストの更新](how-to-update-pull-request.md)
+ [プルリクエストの承認ルールを編集または削除する](how-to-edit-delete-pull-request-approval-rule.md)
+ [プルリクエストの承認ルールの上書き](how-to-override-approval-rules.md)
+ [AWS CodeCommit リポジトリでプルリクエストをマージする](how-to-merge-pull-request.md)
+ [AWS CodeCommit リポジトリ内のプルリクエストの競合を解決する](how-to-resolve-conflict-pull-request.md)
+ [AWS CodeCommit リポジトリでプルリクエストを閉じる](how-to-close-pull-request.md)