

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

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

# Amazon CodeCatalyst でプルリクエストを用いてコードをレビューする
<a name="source-pull-requests"></a>

プルリクエストは、ユーザーと他のプロジェクトメンバーが、ブランチから別のブランチへのコード変更をレビュー、コメント、マージするための主な方法です。プルリクエストを使用すると、わずかな変更や修正、主要な機能の追加、リリースされたソフトウェアの新しいバージョンのコード変更を共同で確認できます。問題を使用してプロジェクト作業を追跡する場合は、特定の問題をリンクしてリクエストをプルし、プルリクエストのコード変更によって対処されている問題を追跡できます。プルリクエストを作成、更新、コメント、マージ、またはクローズすると、プルリクエストの作成者とプルリクエストに必須のレビュアーまたはオプションのレビュアーに E メールが自動送信されます。

**ヒント**  
プロファイルの一部として E メールを受信するプルリクエストイベントを設定できます。詳細については、「[CodeCatalyst からの Slack 通知および E メール通知を送信する](notifications-manage.md)」を参照してください。

プルリクエストにはソースリポジトリに 2 つのブランチが必要です。1 つは、レビューするコードを含むソースブランチで、もう 1 つは、レビューされたコードをマージするターゲットブランチです。送信元ブランチには、AFTER コミットが含まれています。これは、送信先ブランチにマージする変更が含まれるコミットです。送信先ブランチには、BEFORE コミットが含まれています。これは、コードの「前」の状態を表しています（プルリクエストブランチが送信先ブランチにマージされる前）。

**注記**  
プルリクエストを作成中に表示される違いは、送信元ブランチの先頭と送信先ブランチの先頭の間の違いです。プルリクエストを作成した後に表示される違いは、選択したプルリクエストのリビジョンと、プルリクエストの作成時に送信先ブランチの一部であったコミットの間の違いです。Git の違いとマージベースの詳細については、Git ドキュメントの「[git-merge-base](https://git-scm.com/docs/git-merge-base)」を参照してください。

プルリクエストは特定のソースリポジトリとブランチに対して作成されますが、プロジェクトの操作の一環として作成、表示、確認、クローズできます。プルリクエストを表示して操作するために、ソースリポジトリを表示する必要はありません。プルリクエストの状態は、作成時に **[オープン]** に設定されます。プルリクエストは、CodeCatalyst でマージされるか (状態が **[マージ済み]** に変更)、クローズするまで (状態が **[クローズ]** に変更) オープンとなります。

コードをレビューしたら、次のいずれかの方法でプルリクエストをクローズできます。
+ CodeCatalyst コンソールでプルリクエストをマージします。プルリクエストの送信元ブランチのコードは、送信先ブランチにマージされます。プルリクエストの状態は、**[マージ済み]** に変わります。**[オープン]** に戻すことはできません。
+ ブランチをローカルにマージして変更をプッシュし、CodeCatalyst コンソールでプルリクエストをクローズします。
+ CodeCatalyst コンソールを使用すると、マージせずにプルリクエストをクローズできます。クローズすると、状態が **[クローズ]** になり、送信元ブランチから送信先ブランチにコードがマージされなくなります。

プルリクエストを作成する前に、次の操作を実行します。
+ レビューするコード変更をコミットし、送信先ブランチにプッシュします。
+ プロジェクトに対して通知を設定すると、プルリクエスト作成時に実行されるワークフローに関する通知を別のユーザーに送信できます (このステップは、オプションですが推奨されます)。

**Topics**
+ [プルリクエストの作成](pull-requests-create.md)
+ [プルリクエストの表示](pull-requests-view.md)
+ [承認ルールを使用してプルリクエストをマージするための要件を管理する](source-pull-requests-approval-rules.md)
+ [プルリクエストのレビュー](pull-requests-review.md)
+ [プルリクエストの更新](pull-requests-update.md)
+ [プルリクエストをマージする](pull-requests-merge.md)
+ [プルリクエストを閉じる](pull-requests-close.md)

# プルリクエストの作成
<a name="pull-requests-create"></a>

プルリクエストを作成すると、他のユーザーがコード変更を他のブランチにマージする前にそのコードの変更を確認するのに役立ちます。まず、コード変更のためのブランチを作成します。これは、プルリクエストのソースブランチとして参照されます。変更をコミットしてリポジトリにプッシュしたら、ソースブランチの内容とターゲットブランチの内容を比較するプルリクエストを作成します。

Amazon CodeCatalyst コンソールで、特定のブランチ、プルリクエストページ、またはプロジェクトの概要からプルリクエストを作成します。特定のブランチからプルリクエストを作成すると、リポジトリ名とソースブランチがプルリクエストの作成ページに自動的に表示されます。プルリクエストを作成すると、プルリクエストの更新時や、プルリクエストがマージまたは閉じられたときに、自動的に E メールが送信されます。

**注記**  
プルリクエストの作成時に表示される違いは、ソースブランチの先端とターゲットブランチの先端の間の違いです。プルリクエストの作成後に表示される違いは、選択したプルリクエストのリビジョンと、プルリクエストの作成時にターゲットブランチの先端であったコミットの間の違いです。Git の違いとマージベースの詳細については、Git ドキュメントの「[git-merge-base](https://git-scm.com/docs/git-merge-base)」を参照してください。

プルリクエストを作成するときに「**説明を記述する**」機能を使用すると、プルリクエストに含まれる変更の説明が Amazon Q によって自動的に作成されます。このオプションを選択すると、Amazon Q はコード変更を含むソースブランチと、変更のマージするターゲットブランチの違いを分析します。その後、変更内容の要約と、変更の意図と影響に関する最善の解釈を作成します。この機能は、米国西部 (オレゴン) リージョンの CodeCatalyst プルリクエストでのみ使用できます。リンクされたリポジトリのプルリクエストでは、**説明を記述する**機能は使用できません。

**注記**  
**Amazon Bedrock を利用**: [自動不正検出](https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html) AWS を実装します。Amazon Q Developer Agent for Software Development の「**説明を記述する**」、「**内容の要約を作成する**」、「**タスクを提案する**」、「**Amazon Q を使用してプロジェクトに機能を作成または追加する**」、「**Amazon Q に問題を割り当てる**」機能は Amazon Bedrock を基盤に構築されているため、ユーザーは Amazon Bedrock に実装されている統制を最大限に活用して、AI の安全性、セキュリティ、責任ある使用を徹底することができます。

**プルリクエストを作成するには**

1. プロジェクトに移動します。

1. 次のいずれかを行います。
   + ナビゲーションペインで、**[コード]**、**[プルリクエスト]**、**[プルリクエストを作成]** の順に選択します 
   + リポジトリのホームページで、**[その他]**、**[プルリクエストの作成]** の順に選択します。
   + [プロジェクト] ページで、**[プルリクエストを作成]** を選択します。

1. **[ソールリポジトリ]** で、指定したソースリポジトリがコミットしたコードを含むリポジトリであることを確認します。このオプションは、リポジトリのメインページでプルリクエストを作成しなかった場合のみに表示されます。

1. **[ターゲットブランチ]** で、コードのレビュー後、マージ先となるブランチを選択します。

1. **[ソースブランチ]** でコミットしたコードを含むブランチを選択します。

1. **[プルリクエストのタイトル]** に、ユーザーが確認すべき内容と理由が理解しやすい件名を入力します。

1. (オプション) **[プルリクエストの説明]** で、問題へのリンクや変更の説明などの情報を指定します。
**ヒント**  
**[説明を記述する]** を選択すると、プルリクエストに含まれる変更の説明を CodeCatalyst が自動生成します。自動的に生成された説明は、プルリクエストに追加した後で変更できます。  
この機能を使用するには、生成 AI 機能がスペースで有効になっている必要があります。また、リンクされたリポジトリのプルリクエストでは使用できません。詳細については、「[Managing generative AI features](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html)」を参照してください。

1. (オプション) **[問題]** で、**[問題のリンク]** を選択し、リストから問題を選択するか、その ID を入力します。問題のリンクを解除するには、リンク解除アイコンを選択します。

1. (オプション) **[必須のレビュアー]** で、**[必須のレビュアーを追加]** を選択します。プロジェクトメンバーのリストから、追加するメンバーを選択します。プルリクエストをターゲットブランチにマージする前に、必須のレビュアーが変更を承認する必要があります。
**注記**  
同じレビュアーを必須のレビュアーと任意のレビュアーの両方に追加することはできません。自分をレビュアーとして追加することはできません。

1. (オプション) **[任意のレビュアー]** で、**[任意のレビュアーを追加]** を選択します。プロジェクトメンバーのリストから、追加するメンバーを選択します。プルリクエストをターゲットブランチにマージする前に、任意のレビュアーが変更を承認する必要はありません。

1. ブランチ間の違いをレビューします。プルリクエストに表示される違いは、ソースブランチのリビジョンと、マージベース (プルリクエストが作成された際のターゲットブランチのヘッドコミット) の間の変更です。変更が表示されない場合、ブランチがまったく同じであるか、ソースとターゲットの両方に同じブランチを選択している可能性があります。

1. プルリクエストにレビューしてもらいたいコードと変更が含まれていることを確認したら、**[作成]** を選択します。
**注記**  
プルリクエストを作成したら、コメントを追加できます。コメントは、プルリクエスト、またはファイルの各行、およびプルリクエスト全体に追加できます。ファイルなどのリソースへのリンクは、@ 記号の後にファイルの名前を付けることで追加できます。<a name="pull-requests-create-from-branch"></a>

**ブランチからプルリクエストを作成するには**

1. プルリクエストを作成するプロジェクトに移動します。

1. ナビゲーションペインで、**[ソースリポジトリ]** を選択し、レビューするコード変更があるブランチを含むリポジトリを選択します。

1. デフォルトのブランチ名の横にあるドロップダウン矢印を選択し、リストから必要なブランチを選択します。リポジトリのすべてのブランチを表示するには、**[すべて表示]** を選択します。

1. **[詳細]** を選択し、**[プルリクエストを作成]** を選択します。

1. リポジトリとソースブランチが事前に選択されています。**[ターゲットブランチ]** で、レビュー後にコードをマージするブランチを選択します。**[プルリクエストのタイトル]** にタイトルを入力し、他のプロジェクトユーザーがレビューの内容と理由を理解できるようにします。必要に応じて、**[プルリクエストの説明]** に詳細情報を入力します。例えば、CodeCatalyst の関連する問題へのリンクを貼り付けたり、行った変更の説明を追加したりできます。
**注記**  
プルリクエストの作成イベントに対して実行するように設定されたワークフローは、プルリクエストのターゲットブランチがワークフローで指定されたブランチのいずれかと一致する場合に、プルリクエストの作成後に実行されます。

1. ブランチの違いを確認します。変更が表示されない場合、ブランチが同じであるか、ソースとターゲットの両方に同じブランチを選択している可能性があります。

1. (オプション) **[問題]** で、**[問題のリンク]** を選択し、リストから問題を選択するか、その ID を入力します。問題のリンクを解除するには、リンク解除アイコンを選択します。

1. (オプション) **[必須のレビュアー]** で、**[必須のレビュアーを追加]** を選択します。プロジェクトメンバーのリストから、追加するメンバーを選択します。プルリクエストをターゲットブランチにマージする前に、必須のレビュアーが変更を承認する必要があります。
**注記**  
同じレビュアーを必須のレビュアーと任意のレビュアーの両方に追加することはできません。自分をレビュアーとして追加することはできません。

1. (オプション) **[任意のレビュアー]** で、**[任意のレビュアーを追加]** を選択します。プロジェクトメンバーのリストから、追加するメンバーを選択します。任意のレビュアーは、プルリクエストをターゲットブランチにマージする前に、変更を承認する必要はありません。

1. プルリクエストに必要な変更と必須のレビュアーが含まれていることを確認したら、**[作成]** を選択します。

プルリクエストのターゲットブランチと一致するブランチで実行するように設定されたワークフローがある場合、プルリクエストの作成後に、それらのワークフロー実行に関する情報が、**[プルリクエストの詳細]** エリアの **[概要]** に表示されます。詳細については、「[ワークフローへのトリガーの追加](workflows-add-trigger-add.md)」を参照してください。

# プルリクエストの表示
<a name="pull-requests-view"></a>

Amazon CodeCatalyst コンソールでプロジェクトのプルリクエストを表示できます。プロジェクト概要ページには、プロジェクトのすべての未解決のプルリクエストが表示されます。状態にかかわらずすべてのプルリクエストを表示するには、プロジェクトのプルリクエストページに移動します。プルリクエストを表示するときに、作成されたプルリクエストの変更に残されたすべてのコメントの概要を表示することもできます。

**注記**  
**Amazon Bedrock を利用**: [自動不正検出](https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html) AWS を実装します。Amazon Q Developer Agent for Software Development の「**説明を記述する**」、「**内容の要約を作成する**」、「**タスクを提案する**」、「**Amazon Q を使用してプロジェクトに機能を作成または追加する**」、「**Amazon Q に問題を割り当てる**」機能は Amazon Bedrock を基盤に構築されているため、ユーザーは Amazon Bedrock に実装されている統制を最大限に活用して、AI の安全性、セキュリティ、責任ある使用を徹底することができます。<a name="pull-requests-view-open-project"></a>

**未解決のプルリクエストを表示するには**

1. プルリクエストを表示するプロジェクトに移動します。

1. プロジェクトページには、未解決のプルリクエストが表示されます。プルリクエストの作成者、プルリクエストのブランチが含まれるリポジトリ、プルリクエストの作成日などが表示されます。未解決のプルリクエストのビューは、ソースリポジトリでフィルタリングできます。

1. すべてのプルリクエストを表示するには、**[すべて表示]** を選択します。セレクタを使用して、オプションを選択できます。例えば、すべてのプルリクエストを表示するには、**[任意のステータス]** と **[任意の作成者]** を選択します。

   または、ナビゲーションペインで **[コード]** を選択し、**[プルリクエスト]** を選択して、セレクタを使用してビューを絞り込みます。

1. **[プルリクエスト]** ページで、プルリクエストを ID、タイトル、ステータスなどでソートできます。プルリクエストページに表示される情報と情報の量をカスタマイズするには、歯車アイコンを選択します。

1. 特定のプルリクエストを表示するには、リストから選択します。

1. このプルリクエストに関連付けられたワークフロー実行のステータス (存在する場合) を表示するには、**[概要]** を選択し、**[ワークフロー実行]** の **[プルリクエストの詳細]** エリアの情報を確認します。

   ワークフローがプルリクエストの作成イベントまたはリビジョンイベントで設定され、ワークフロー内のターゲットブランチ要件がプルリクエストで指定されたターゲットブランチと一致する場合に、ワークフローが実行されます。詳細については、「[ワークフローへのトリガーの追加](workflows-add-trigger-add.md)」を参照してください。

1. リンクされた問題 (存在する場合) を表示するには、**[概要]** を選択し、**[問題]** の **[プルリクエストの詳細]** の情報を確認します。リンクされた問題を表示するには、リストからその ID を選択します。

1. (オプション) プルリクエストのリビジョンのコード変更に残されたコメントの概要を作成するには、**[内容の要約を作成する]** を選択します。概要には、プルリクエスト全体に残されたコメントは含まれません。
**注記**  
この機能を使用するには、スペースで生成 AI 機能が有効になっている必要があり、リンクされたリポジトリでは使用できず、米国西部 (オレゴン) リージョンでのみ使用できます。詳細については、「[Managing generative AI features](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html)」を参照してください。

1. プルリクエストのコードの変更を表示するには、**[変更]** を選択します。**[変更されたファイル]** では、プルリクエストで変更されたファイルの数や、コメントが残されたファイルを、すばやく確認できます。フォルダの横に表示されるコメントの数は、そのフォルダ内のファイルに対するコメントの数を示します。フォルダを展開すると、フォルダ内の各ファイルのコメント数が表示されます。特定のコード行に残されたコメントを表示することもできます。

   
**注記**  
プルリクエストのすべての変更がコンソールに表示されるわけではありません。例えば、コンソールでは Git サブモジュールを表示できないため、プルリクエストのサブモジュールの違いを表示することはできません。違いが大きすぎて表示できない場合もあります。詳細については、「[CodeCatalyst のソースリポジトリのクォータ](source-quotas.md)」および「[ファイルを表示するファイルの変更履歴を表示する](source-files-view.md)」を参照してください。

1. このプルリクエストの品質レポートを表示するには、**[レポート]** を選択します。
**注記**  
プルリクエストでレポートを表示するには、レポートを生成するようにワークフローを設定する必要があります。詳細については、「[ワークフローを使用したテストワークフローを使用したテスト](test-workflow-actions.md)」を参照してください。

# 承認ルールを使用してプルリクエストをマージするための要件を管理する
<a name="source-pull-requests-approval-rules"></a>

プルリクエストを作成するときに、個々のプルリクエストに必須またはオプションのレビュアーを追加できます。ただし、特定の送信先ブランチにマージする際に、すべてのプルリクエストが満たすべき要件を作成することもできます。これらの要件は承認ルールと呼ばれます。承認ルールは、リポジトリ内のブランチに対して設定されます。ターゲットブランチに承認ルールが設定されているプルリクエストを作成する場合、プルリクエストをそのブランチにマージする前に、必須のレビュアーの承認に加えて、そのルールの要件も満たす必要があります。承認ルールを作成すると、デフォルトブランチなどのブランチへのマージの品質基準を維持するのに役立ちます。

ソースリポジトリのデフォルトブランチに適用される承認ルールは、他のブランチに適用される承認ルールとは少し動作が異なります。デフォルトブランチに適用されるルールは、デフォルトブランチとして指定したブランチに自動的に適用されます。以前にデフォルトブランチとして設定されたブランチは、それに適用されるルールを保持します。

承認ルールを作成するときは、現在と今後のプロジェクトユーザーがそのルールをどのように満たすかを考慮する必要があります。例えば、プロジェクトに 6 人のユーザーがいて、送信先ブランチにマージする前に 5 つの承認を必要とする承認ルールを作成する場合、マージする前に、プルリクエストの作成者以外のすべてのユーザーがそのプルリクエストを承認する必要があるルールを効果的に作成します。

**注記**  
CodeCatalyst プロジェクトで承認ルールを作成および管理するには、Project administrator ロールが必要です。リンクされたリポジトリの承認ルールは作成できません。

 承認ルールは削除できませんが、更新して承認をなかったことにすると効率的にルールを削除できます。<a name="view-edit-approval-rules"></a>

**プルリクエストの送信先ブランチの承認ルールを表示および編集する**

1. リポジトリが存在するプロジェクトに移動します。

1. プロジェクトのソースリポジトリのリストからリポジトリ名を選択します。または、ナビゲーションペインで **[コード]** > **[ソースリポジトリ]** の順に選択します。

   承認ルールを表示するリポジトリを選択します。

1. リポジトリの [概要] ページで、**[ブランチ]** を選択します。

1. **[承認ルール]** 列で、**[表示]** を選択して、リポジトリの各ブランチのルールの状態を表示します。

   **[承認最小数]** に、プルリクエストがそのブランチにマージされるまでに必要な承認数に対応する数値を入力します。

1. 承認ルールを変更するには、**[設定を管理]** を選択します。ソースリポジトリの [設定] ページにある **[承認ルール]** で **[編集]** を選択します。
**注記**  
承認ルールを編集するには、**Project administrator** ロールが必要です。

1. **[ブランチ]** のドロップダウンリストで、承認ルールを設定するブランチの名前を選択します。**[承認最小数]** に数値を入力し、**[保存]** を選択します。

# プルリクエストのレビュー
<a name="pull-requests-review"></a>

Amazon CodeCatalyst コンソールを使用して、プルリクエストに含まれる変更を共同でレビューし、コメントすることができます。ソースブランチとターゲットブランチの違いについて、またプルリクエストのリビジョン間の違いについて、コードの個々の行にコメントを追加できます。プルリクエストのコード変更に残されたコメントの概要を作成すると、他のユーザーが残したフィードバックをすばやく理解できます。コードを操作する開発環境を作成することもできます。

**注記**  
**Amazon Bedrock を利用**: [自動不正検出](https://docs.aws.amazon.com//bedrock/latest/userguide/abuse-detection.html) AWS を実装します。Amazon Q Developer Agent for Software Development の「**説明を記述する**」、「**内容の要約を作成する**」、「**タスクを提案する**」、「**Amazon Q を使用してプロジェクトに機能を作成または追加する**」、「**Amazon Q に問題を割り当てる**」機能は Amazon Bedrock を基盤に構築されているため、ユーザーは Amazon Bedrock に実装されている統制を最大限に活用して、AI の安全性、セキュリティ、責任ある使用を徹底することができます。

**ヒント**  
プロファイルの一部として、E メールを受信するプルリクエストイベントを設定できます。詳細については、「[CodeCatalyst からの Slack 通知および E メール通知を送信する](notifications-manage.md)」を参照してください。<a name="merge-base"></a>

プルリクエストは、プルリクエストのリビジョンと、プルリクエストの作成時にターゲットブランチの先端であったコミットとの間の違いを示します。これはマージベースと呼ばれます。Git の違いとマージベースの詳細については、Git ドキュメントの「[git-merge-base](https://git-scm.com/docs/git-merge-base)」を参照してください。

**ヒント**  
コンソールで作業する場合、特にプルリクエストをしばらく開いたままにしていた場合は、プルリクエストのレビューを開始する前に、ブラウザを更新してプルリクエストが最新のリビジョンであることを確認してください。

**CodeCatalyst コンソールでプルリクエストをレビューするには**

1. プロジェクトに移動します。

1. 次のいずれかを実行してプルリクエストに移動します。
   + プルリクエストがプロジェクトページにリストされている場合は、リストから選択します。
   + プルリクエストがプロジェクトページに表示されていない場合は、**[すべて表示]** を選択します。フィルターとソートを使用してプルリクエストを見つけて、リストから選択します。
   + ナビゲーションペインで、**[コード]** を選択し、**[プルリクエスト]** を選択します。

1. レビューするプルリクエストをリストから選択します。フィルターバーに名前の一部を入力すると、プルリクエストのリストをフィルタリングできます。

1. **[概要]** では、プルリクエストの名前とタイトルを確認できます。コメントを作成したり、プルリクエストに残されたコメントを表示したりできます。プルリクエストの詳細を表示できます。ワークフローの実行、リンクされた問題、レビュアー、プルリクエストの作成者、実行可能なマージ戦略に関する情報などを確認できます。
**注記**  
特定のコード行に残されたコメントは **[変更]** に表示されます。

1. (オプション) プルリクエスト全体に適用されるコメントを追加するには、**[プルリクエストのコメント]** を展開し、**[コメントの作成]** を選択します。

1. (オプション) このプルリクエストのリビジョンの変更に残されたすべてのコメントの概要を表示するには、**[コメントの要約を作成する]** を選択します。
**注記**  
この機能を使用するには、スペースで生成 AI 機能が有効になっている必要があり、これは米国西部 (オレゴン) リージョンでのみ利用できます。詳細については、「[Managing generative AI features](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-generative-ai-features.html)」を参照してください。

1. **[変更]** では、ターゲットブランチとプルリクエストの最新リビジョンの違いを確認できます。リビジョンが複数ある場合は、比較するリビジョンを変更できます。リビジョンの詳細については、「[改訂](source-concepts.md#revision-concept)」を参照してください。
**ヒント**  
**[変更されたファイル]** では、プルリクエストで変更されたファイルの数や、コメントが残されたファイルを、すばやく確認できます。フォルダの横に表示されるコメントの数は、そのフォルダ内のファイルに対するコメントの数を示します。フォルダを展開すると、フォルダ内の各ファイルのコメント数が表示されます。

1. 違いの表示方法を変更するには、**[統合]** または **[分割]** を選択します。

1. プルリクエストの行にコメントを追加するには、コメントする行に移動します。その行の横に表示されるコメント用アイコンを選択し、コメントを入力して、**[保存]** を選択します。

1. プルリクエストのリビジョン間、またはそのソースブランチとターゲットブランチ間の変更を表示するには、**[比較]** で使用可能なオプションから選択します。リビジョンの行に対するコメントは、それらのリビジョンに保持されます。

1. プルリクエストトリガーでコードカバレッジレポートを生成するようにワークフローを設定している場合、関連するプルリクエストの、行とブランチカバレッジの検出結果を表示できます。コードカバレッジの検出結果を非表示にするには、**[コードカバレッジの非表示]** を選択します。詳細については、「[コードカバレッジレポート](test-workflow-actions.md#test-code-coverage-reports)」を参照してください。

1. プルリクエストのコードを変更する場合は、プルリクエストから開発環境を作成できます。**[開発環境を作成]** を選択します。必要に応じて、開発環境の名前を追加するか、設定を編集して **[作成]** を選択します。

1. **[レポート]** では、このプルリクエストの品質レポートを表示できます。リビジョンが複数ある場合は、比較するリビジョンを変更できます。レポートは、名前、ステータス、ワークフロー、アクション、タイプでフィルタリングできます。
**注記**  
プルリクエストでレポートを表示するには、レポートを生成するようにワークフローを設定する必要があります。詳細については、「[アクションにおける品質レポートの設定](test-config-action.md)」を参照してください。

1. 特定のレポートを表示するには、リストから選択します。詳細については、「[ワークフローを使用したテストワークフローを使用したテスト](test-workflow-actions.md)」を参照してください。

1. このプルリクエストのレビュアーが、変更を承認する場合は、最新のリビジョンが表示されていることを確認してから、**[承認]** を選択します。
**注記**  
すべての必須のレビュアーがプルリクエストを承認してから、マージを行う必要があります。

# プルリクエストの更新
<a name="pull-requests-update"></a>

プルリクエストを更新すると、他のプロジェクトメンバーがコードを簡単に確認できるようになります。プルリクエストを更新して、レビュアー、問題へのリンク、プルリクエストのタイトル、説明を変更できます。例えば、プルリクエストの必須のレビュアーを変更し、休暇中で不在のユーザーを削除して、別のユーザーを追加することができます。未解決のプルリクエストのソースブランチにコミットをプッシュして、追加のコード変更でプルリクエストを更新することもできます。CodeCatalyst ソースリポジトリのプルリクエストのソースブランチへのプッシュごとに、リビジョンが作成されます。プロジェクトメンバーは、プルリクエストのリビジョン間の違いを表示できます。<a name="pull-requests-update-reviewers"></a>

**プルリクエストのレビュアーを更新するには**

1. プルリクエストのレビュアーを更新するプロジェクトに移動します。

1. プロジェクトページの **[未解決のプルリクエスト]** で、レビュアーを更新するプルリクエストを選択します。または、ナビゲーションペインで、**[コード]** を選択し、**[プルリクエスト]** を選択して、更新するプルリクエストを選択します。

1. (オプション) **[概要]** の **[プルリクエストの詳細]** エリアで、プラス記号を選択して、必須または任意のレビュアーを追加します。レビュアーの横で **[X]** を選択して、任意または必須のレビュアーを削除します。

   

1. (オプション) 問題をプルリクエストにリンクするには、**[概要]** の **[プルリクエストの詳細]** エリアで、**[問題をリンク]** を選択し、リストから問題を選択するか、その ID を入力します。問題のリンクを解除するには、リンクを解除する問題の横にあるリンク解除アイコンを選択します。<a name="pull-requests-update-code"></a>

**プルリクエストのソースブランチのファイルとコードを更新するには**

1. 複数のファイルを更新するには、[開発環境を作成する](devenvironment-create.md)か、リポジトリとそのソースブランチをクローンし、Git クライアントまたは統合開発環境 (IDE) を使用して、ソースブランチ内のファイルに変更を加えます。CodeCatalyst ソースリポジトリのソースブランチに変更をコミットしてプッシュすると、プルリクエストが変更で自動的に更新されます。詳細については、「[ソースリポジトリのクローンを作成する](source-repositories-clone.md)」および「[Amazon CodeCatalyst におけるコミットによるソースコードの変更を理解する](source-commits.md)」を参照してください。

1. ソースブランチ内の個々のファイルを更新するには、複数ファイルの場合と同様に Git クライアントまたは IDE を使用できます。CodeCatalyst コンソールで直接編集することもできます。詳細については、「[ファイルの編集](source-files-edit.md)」を参照してください。<a name="pull-requests-update-pull-request"></a>

**プルリクエストのタイトルと説明を更新するには**

1. プルリクエストのタイトルまたは説明を更新するプロジェクトに移動します。

1. プロジェクトページに、未解決のプルリクエストが表示されます。プルリクエストの作成者、プルリクエストのブランチが含まれるリポジトリ、プルリクエストの作成日などが表示されます。未解決のプルリクエストのビューは、ソースリポジトリでフィルタリングできます。リストから変更するプルリクエストを選択します。

1. すべてのプルリクエストを表示するには、**[すべて表示]** を選択します。または、ナビゲーションペインで **[コード]** を選択し、**[プルリクエスト]** を選択します。フィルターボックスまたはソート機能を使用して、変更するプルリクエストを見つけて選択します。

1.  **[概要]** で **[編集]** を選択します。

1. タイトルまたは説明を変更し、**[保存]** を選択します。

# プルリクエストをマージする
<a name="pull-requests-merge"></a>

コードがレビューされ、すべての必須のレビュアーが承認したら、サポートされるマージ戦略 (早送りなど) を使用して CodeCatalyst コンソールでプルリクエストをマージできます。CodeCatalyst コンソールでサポートされるすべてのマージ戦略を、すべてのプルリクエストの選択肢として利用できるわけではありません。CodeCatalyst はマージを評価し、ソースブランチをターゲットブランチにマージできるマージ戦略のみをコンソールで選択できるようにします。ローカルコンピュータまたは開発環境で **git merge** コマンドを実行してソースブランチをターゲットブランチにマージすると、選択した Git マージ戦略でプルリクエストをマージできます。その後、ターゲットブランチの変更を CodeCatalyst のソースリポジトリにプッシュできます。

**注記**  
ブランチをマージして Git に変更をプッシュしても、プルリクエストは自動的には閉じられません。

プロジェクト管理者ロールがある場合は、承認と承認ルールのすべての要件を満たしていないプルリクエストをマージすることもできます。

## プルリクエストをマージする (コンソール)
<a name="pull-requests-merge-console"></a>

ソースブランチとターゲットブランチの間にマージ競合がなく、すべての必須のレビュアーがプルリクエストを承認している場合、CodeCatalyst コンソールでプルリクエストをマージできます。競合がある場合、またはマージを完了できない場合は、マージボタンが非アクティブになり、**[マージ不可]** ラベルが表示されます。この場合、必要な承認者から承認を取得し、必要に応じてローカルで競合を解決して、それらの変更をプッシュしてから、マージする必要があります。プルリクエストをマージすると、プルリクエストの作成者、および必須または任意のレビュアーに E メールが自動的に送信されます。プルリクエストにリンクされた問題が自動的に閉じられたり、ステータスが変更されたりすることはありません。

**ヒント**  
プロファイルの一部として、E メールを受信するプルリクエストイベントを設定できます。詳細については、「[CodeCatalyst からの Slack 通知および E メール通知を送信する](notifications-manage.md)」を参照してください。<a name="pull-requests-merge-console"></a>

**プルリクエストをマージするには**

1. プルリクエストをマージするプロジェクトに移動します。

1. プロジェクトページの **[未解決のプルリクエスト]** で、マージするプルリクエストを選択します。プルリクエストが表示されない場合は、**[すべてのプルリクエストを表示]** を選択し、リストから選択します。または、ナビゲーションペインで、**[コード]** を選択し、**[プルリクエスト]** を選択して、マージするプルリクエストを選択します。[**Merge (マージ)**] を選択します。

1. プルリクエストに使用可能なマージ戦略のいずれかを選択します。必要に応じて、プルリクエストをマージした後にソースブランチを削除するオプションを選択または選択解除し、**[マージ]** を選択します。
**注記**  
**マージ**ボタンが非アクティブな場合、または **[マージ不可]** ラベルが表示されている場合は、必須のレビュアーがプルリクエストをまだ承認していないか、プルリクエストを CodeCatalyst コンソールでマージできません。プルリクエストを承認していないレビュアーは、**[概要]** の **[プルリクエストの詳細]** エリアに時計のアイコンで示されます。すべての必須のレビュアーがプルリクエストを承認しても**マージ**ボタンが非アクティブである場合、マージの競合が発生している可能性があります。下線付きの **[マージ不可]** ラベルを選択すると、プルリクエストをマージできない理由の詳細が表示されます。開発環境または CodeCatalyst コンソールでターゲットブランチのマージ競合を解決してからプルリクエストをマージするか、または競合を解決してローカルでマージし、マージを含むコミットを CodeCatalyst のソースブランチにプッシュできます。詳細については、「[プルリクエストのマージ (Git)](#pull-requests-merge-git)」および Git ドキュメントを参照してください。

## マージ要件を上書きする
<a name="pull-requests-merge-override"></a>

**プロジェクト管理者**ロールがある場合は、必要な承認と承認ルールのすべての要件を満たしていないプルリクエストをマージできます。これは、プルリクエストの要件の上書きと呼ばれます。必須のレビュアーが対応できない場合や、すぐには満たすことができない承認ルールがあるブランチに特定のプルリクエストをマージする必要が緊急に生じた場合に、これを行うことができます。<a name="pull-requests-merge-console"></a>

**プルリクエストをマージするには**

1. 要件を上書きしてマージするプルリクエストで、**マージ**ボタンの横にあるドロップダウン矢印を選択します。**[承認要件を上書きする]** を選択します。

1. **[オーバーライドの理由]** に、承認ルールと必須のレビュアーの要件を満たさずにこのプルリクエストをマージする理由の詳細を記入します。これはオプションですが、入力することを強くお勧めします。

1. 必要に応じてマージ戦略を選択するか、デフォルトを受け入れます。また、自動生成されたコミットメッセージを詳細に更新することもできます。

1. マージ時にソースブランチを削除するオプションを選択または選択解除します。プルリクエストのマージ要件を上書きする場合、他のチームメンバーと決定を確認する機会が得られるまでソースブランチを保持することをお勧めします。

1. [**Merge (マージ)**] を選択します。

## プルリクエストのマージ (Git)
<a name="pull-requests-merge-git"></a>

Git では、ブランチのマージと管理のための多くのオプションをサポートしています。コマンドで使用できる主なオプションの一部を次に示します。詳細については、[Git ウェブサイト](https://git-scm.com/doc)で入手できるドキュメントを参照してください。変更をマージしてプッシュしたら、プルリクエストを手動で閉じます。詳細については、「[プルリクエストを閉じる](pull-requests-close.md)」を参照してください。


**ブランチをマージするための一般的な Git コマンド**  

|  |  | 
| --- |--- |
|  ローカルリポジトリのソースブランチからの変更をローカルリポジトリのターゲットブランチにマージします。  |  `git checkout destination-branch-name` `git merge source-branch-name`  | 
|  早送りマージを指定して、ソースブランチをターゲットブランチにマージします。これにより、ブランチがマージされ、ターゲットブランチポインタがソースブランチの先端に移動します。  |  `git checkout destination-branch-name` `git merge --ff-only source-branch-name`  | 
|  スカッシュマージを指定して、ソースブランチをターゲットブランチにマージします。これにより、ソースブランチからのすべてのコミットが、ターゲットブランチの単一のマージコミットに結合されます。  |  `git checkout destination-branch-name` `git merge --squash source-branch-name`  | 
|  3 方向マージを指定して、ソースブランチをターゲットブランチにマージします。これにより、マージコミットが作成され、ソースブランチからターゲットブランチに個々のコミットが追加されます。  |  `git checkout destination-branch-name` `git merge --no-ff source-branch-name`  | 
|  ローカルリポジトリのソースブランチを削除します。これは、ターゲットブランチにマージして変更をソースリポジトリにプッシュした後、ローカルリポジトリのクリーンアップとして実行できます。  |  `git branch -d source-branch-name`  | 
|  ローカルリポジトリでリモートリポジトリに指定されたニックネームを使用して、リモートリポジトリのソースブランチ (CodeCatalyst のソースリポジトリ) を削除します。(コロン (`:`) の使用に注意してください)。または、コマンドの一部として `--delete` を指定します。  |  `git push remote-name :source-branch-name` `git push remote-name --delete source-branch-name`  | 

# プルリクエストを閉じる
<a name="pull-requests-close"></a>

プルリクエストを**解決済み**としてマークできます。これによってプルリクエストがマージされることはありませんが、アクションが必要なプルリクエストと必要ないプルリクエストを区別することができます。これらの変更をマージする予定がない場合、または変更が別のプルリクエストによってマージされた場合は、プルリクエストを閉じることをお勧めします。

プルリクエストを閉じると、プルリクエストの作成者、および必須または任意のレビュアーに E メールが自動的に送信されます。プルリクエストにリンクされた問題のステータスは自動的には変更されません。

**注記**  
プルリクエストは、閉じた後に再度開くことはできません。<a name="pull-requests-close-pull-request"></a>

**プルリクエストを閉じるには**

1. プルリクエストを閉じるプロジェクトに移動します。

1. プロジェクトページに、未解決のプルリクエストが表示されます。解決済みにするプルリクエストを選択します。

1. [**閉じる**] を選択してください。

1. 情報を確認して **[プルリクエストを閉じる]** を選択します。