

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

# GitHub の接続
<a name="connecting-to-cicd-pipelines-connecting-github"></a>

GitHub 統合により、 AWS DevOps Agent はコードリポジトリにアクセスし、インシデント調査中にデプロイイベントを受信できます。この統合は、GitHub のアカウントレベルの登録と、特定のリポジトリを個々のエージェントスペースに接続するという 2 つのステップのプロセスに従います。

AWS DevOps Agent は、GitHub.com (SaaS)、データレジデンシーを持つ GitHub Enterprise Cloud (`*.ghe.com`)、および GitHub Enterprise Server (セルフホスト) インスタンスをサポートしています。

## 前提条件
<a name="prerequisites"></a>

GitHub を接続する前に、以下を確認してください。
+  AWS DevOps エージェント管理コンソールへのアクセス
+ 管理者権限を持つ GitHub ユーザーアカウントまたは組織
+ アカウントまたは組織に GitHub Apps をインストールする認可

GitHub Enterprise Server の場合、以下も必要です。
+ HTTPS 経由でアクセス可能な GitHub Enterprise Server インスタンス (バージョン 3.x 以降)
+ GitHub Enterprise Server インスタンスの HTTPS URL (例: `https://github.example.com`)
+ (オプション) GitHub Enterprise Server インスタンスがパブリックにアクセスできない場合のプライベート接続

データレジデンシーを持つ GitHub Enterprise Cloud の場合、以下も必要です。
+ 専用`*.ghe.com`サブドメインでホストされているデータレジデンシーが有効になっている GitHub Enterprise Cloud 組織
+ GitHub Apps を作成およびインストールするためのアクセス許可を含む、組織の管理者アクセス許可
+ データレジデンシーインスタンスの HTTPS URL (例: `https://octocorp.ghe.com`)

## GitHub の登録 (アカウントレベル)
<a name="registering-github-account-level"></a>

GitHub は AWS アカウントレベルで登録され、そのアカウントのすべてのエージェントスペース間で共有されます。各登録は、1 人の GitHub ユーザー、1 つの組織、または 1 つの GitHub Enterprise Server インスタンスに対応します。

### ステップ 1: パイプラインプロバイダーに移動する
<a name="step-1-navigate-to-pipeline-providers"></a>

1.  AWS マネジメントコンソールにサインインする

1.  AWS DevOps エージェントコンソールに移動する

1. **機能**タブに移動する

1. **パイプライン**セクションで、**追加** を選択します。

1. 利用可能なプロバイダーのリストから **GitHub** を選択する

GitHub がまだ登録されていない場合は、最初に登録するように求められます。

### ステップ 2: 接続タイプを選択する
<a name="step-2-choose-connection-type"></a>

GitHub アカウント/組織を登録する」画面で、ユーザーまたは組織として接続するかどうかを選択します。
+ **ユーザー** – ユーザー名とプロファイルを持つ個人 GitHub アカウント
+ **組織** – 複数のユーザーが一度に複数のプロジェクトでコラボレーションできる共有 GitHub アカウント。**Organization** を選択した場合は、GitHub の組織名を入力します。名前は GitHub 組織名と正確に一致する必要があります。次のステップでその組織にアプリを承認してインストールする必要があるためです。

**GitHub App の GitHub App アクセス許可**を選択します。 GitHub アクセス許可レベルは、GitHub App がリポジトリで実行できるアクションを決定します。
+ **読み取りと書き込み** (デフォルト): GitHub アプリは読み取りアクセス許可と書き込みアクセス許可の両方をリクエストします。これにより、すべての機能が有効になります。DevOps エージェントは、インラインプルリクエストコメントの投稿、修正の提案、ワークフローのトリガーを行うことができます。
+ **読み取り専用**: GitHub App は読み取り専用アクセス許可のみをリクエストします。DevOps エージェントはコードとプルリクエストを表示できますが、コメントの投稿、修正の提案、ワークフローのトリガーはできません。

GitHub Enterprise Server インスタンスに接続する場合は、**GitHub Enterprise の使用**を選択し、インスタンスの HTTPS URL を入力します (例: `https://github.example.com`)。

GitHub Enterprise Server インスタンスがパブリックにアクセスできない場合は、オプションでプライベート接続を設定して、 AWS DevOps Agent がインスタンスに安全に到達できるようにします。詳細については、「[プライベートにホストされたツールへの接続](configuring-integrations-and-knowledge-connecting-to-privately-hosted-tools.md)」を参照してください。

**注記**  
** URL に `/api/v3`または末尾のパスを含めないでください。基本 URL のみを入力します。

データレジデンシーを持つ GitHub Enterprise Cloud の場合は、**GitHub Enterprise の使用**を選択し、データレジデンシーインスタンスの HTTPS URL を入力します (例: `https://octocorp.ghe.com`)。

### ステップ 3: GitHub アプリを設定する
<a name="step-3-set-up-the-github-app"></a>

**送信** を選択して、アプリのセットアッププロセスを開始します。次のステップは、データレジデンシーを使用して GitHub.com,GitHub Enterprise Server、または GitHub Enterprise Cloud に接続するかどうかによって異なります。

#### GitHub.com の場合
<a name="for-githubcom"></a>

1. GitHub は、サインインして AWS DevOps エージェントを承認するようにリダイレクトします。

1. 認可リクエストを確認し、 AWS DevOps エージェントを承認します。

1. 承認すると、 AWS DevOps Agent は登録を完了します。指定したアカウントまたは組織に GitHub アプリがまだインストールされていない場合は、インストールページに進みます (ステップ 4 を参照）。アプリが既にインストールされている場合、登録は再インストールせずに完了します。

1. インストール後、 AWS DevOps Agent は、デプロイイベントなど、接続されたリポジトリからイベントを受け取ります。

**注記**  
** 登録時に指定したのと同じユーザーまたは組織にアプリを承認してインストールする必要があります。別のアカウントまたは組織に認可またはインストールすると、登録は失敗し、正しいアカウントまたは組織を選択してプロセスを再起動する必要があります。

**注記**  
** AWS DevOps エージェントは、アクセス許可レベル (読み取りおよび書き込みと読み取り専用) ごとに個別の GitHub アプリを使用し、各アプリは個別に承認されます。GitHub は、 設定 > アプリケーション > 認可された GitHub アプリで取り消すまで認可を記憶します。以前にこのアクセス許可レベルでアプリを承認した場合、GitHub は承認画面をスキップすることがあります。アクセス許可レベルを変更すると、GitHub は対応するアプリを初めて承認するように求めます。

#### データレジデンシーを持つ GitHub Enterprise Server および GitHub Enterprise Cloud の場合
<a name="for-github-enterprise-server-and-github-enterprise-cloud-with-data-residency"></a>

データレジデンシーを持つ GitHub Enterprise Server と GitHub Enterprise Cloud はどちらも GitHub App Manifest フローを使用します。これにより、インスタンスに新しい GitHub App が自動的に設定されます。セットアップ中、ブラウザは 2 回リダイレクトされます。1 回はインスタンスに、もう 1 回は AWS DevOps エージェントにリダイレクトされます。

1. AWS DevOps エージェントは、ブラウザを GitHub Enterprise インスタンスの ** GitHub アプリの作成**ページにリダイレクトします。

1. アプリ名は事前に入力されています。必要に応じて名前を変更し、**GitHub アプリの作成**を選択します。

1.  AWS DevOps エージェントはブラウザをリダイレクトし直すと、マニフェストコードをアプリケーションの認証情報と交換します。

### ステップ 4: リポジトリを選択してインストールを完了する
<a name="step-4-select-repositories-and-complete-installation"></a>

GitHub アプリがアカウントまたは組織に既にインストールされている場合は、このステップをスキップします。

1. GitHub アプリ**のインストールと承認**ページが表示されます。

1. アプリがアクセスできるようにするリポジトリを選択します。
   + **すべてのリポジトリ** – 現在および将来のすべてのリポジトリへのアクセスを許可します。
   + **リポジトリのみを選択** – アカウントまたは組織から特定のリポジトリを選択します。

1. [**インストールして承認**] を選択します。

1.  AWS DevOps エージェントコンソールにリダイレクトされ、GitHub がアカウントレベルで登録済みとして表示されます。

## エージェントスペースへのリポジトリの接続
<a name="connecting-repositories-to-an-agent-space"></a>

アカウントレベルで GitHub を登録したら、特定のリポジトリを個々のエージェントスペースに接続できます。

1.  AWS DevOps エージェントコンソールで、エージェントスペースを選択します。

1. **機能**タブに移動する

1. **パイプライン**セクションで、**追加** を選択します。

1. 利用可能なプロバイダーのリストから **GitHub** を選択する

1. 使用するリポジトリを含む GitHub 登録を選択します。

1. このエージェントスペースに関連するリポジトリのサブセットを選択する

1. **追加**を選択して接続を完了します

組織のニーズに応じて、異なるリポジトリのセットを異なるエージェントスペースに接続できます。1 つのエージェントスペースで複数の登録のリポジトリを使用できます。別の登録からリポジトリを追加するには、以下の手順を繰り返します。

## コードレビューと自動テストの設定
<a name="configuring-code-review-and-automated-testing"></a>

GitHub 接続ステップでリポジトリを選択すると、**コードレビューと自動テスト**セクションに自動的に追加されます。このセクションでは、 [リリース準備状況コードレビュー](release-management-release-readiness-code-review.md)および自動テスト機能を自動的にトリガーするリポジトリを設定します。

コードレビューと自動テストの設定には以下が含まれます。
+ **機能** — 各リポジトリのコードレビューと自動テスト機能を選択します。このセクションでは、リポジトリごとに 2 つの設定を提供します。
  + **自動トリガー変更レビュー** — リポジトリに対して有効にすると、DevOps Agent はプルリクエストが開かれたり更新されたり[リリース準備状況コードレビュー](release-management-release-readiness-code-review.md)するたびに自動的に を実行します。レビューの結果は、プルリクエストにインラインコメントとして表示されます。これは、接続されているすべてのリポジトリでデフォルトで有効になっています。
  + **自動検証テスト** — リポジトリに対して有効にすると、DevOps Agent はコードレビュー中にマネージド検証環境でコード変更を構築、実行、テストします。これにより、静的分析以外の機能検証が可能になります。詳細については、[「自動検証テスト](release-management-release-readiness-code-review.md)」を参照してください。これは、接続されているすべてのリポジトリでデフォルトで有効になっています。
+ **リポジトリリスト** — 接続ステップ中に選択したすべてのリポジトリを表示します。検索フィールドを使用して、リポジトリを名前でフィルタリングします。各リポジトリには、両方の機能に対して独立したチェックボックスがあります。
+ **ランタイムロール** (オプション) — 選択したリポジトリで自動機能を実行するために DevOps Agent が引き受ける IAM ロールを選択します。このロールは、プライベートパッケージレジストリやアーティファクトストレージシステムなど、ビルド中に必要な内部サービスにアクセスするときに使用されます。プライマリエージェントロールとは異なるロールを使用することをお勧めします。

自動レビューを設定するには:

1. リポジトリを接続したら、GitHub 統合設定の**コードレビューと自動テスト**セクションに移動します。

1. リポジトリごとに、自動プルリクエスト**レビューが必要かどうかに応じて、自動トリガー変更**レビュー機能を有効または無効にします。

1. リポジトリごとに、マネージド**検証環境で自動検証テスト**を行う[かどうかに応じて、自動検証テスト](release-management-release-readiness-code-review.md)機能を有効または無効にします。

1. 必要に応じて、選択したリポジトリで自動機能を実行するときに DevOps Agent が引き受けるランタイムロールドロップダウンから IAM **ロール**を選択します。

1. **保存**を選択して設定を適用します。

自動**トリガー変更レビュー**が有効になっているリポジトリ内の新しいプルリクエストを設定すると、リリース準備状況コードレビューが自動的にトリガーされます。**自動検証テスト**も有効になっている場合、レビューには検証環境での機能検証が含まれます。コードレビューの詳細については、「」を参照してください[リリース準備状況コードレビュー](release-management-release-readiness-code-review.md)。

## GitHub アプリについて
<a name="understanding-the-github-app"></a>

 AWS DevOps エージェント GitHub アプリ:
+ リポジトリへのアクセスをリクエストする — GitHub アプリのインストール中に特定のアクセス許可を確認できます
+ デプロイイベントおよびその他のリポジトリイベントを受信します
+  AWS DevOps エージェントによるコード変更と運用インシデントの関連付けを許可する
+ GitHub 設定を使用していつでもアンインストールできます

データレジデンシーを持つ GitHub Enterprise Server および GitHub Enterprise Cloud の場合、 AWS DevOps Agent は登録時にインスタンスに GitHub アプリを自動的に作成します。アプリのリポジトリアクセスを管理したり、**設定 > アプリケーション > インストールされた GitHub Apps** を使用してアンインストールしたりできます。アプリ定義を完全に削除するには、**設定 > デベロッパー設定 > GitHub Apps** に移動します。

## GitHub アプリのアクセス許可の更新
<a name="github-app-permission-updates"></a>

AWS DevOps Agent は、新機能をサポートするために GitHub アプリをインストールした後にアクセス許可の更新をリクエストすることがあります。この場合:

1. アクセス許可の更新リクエストに関する通知が GitHub から届きます。

1. 更新の詳細を確認して、リクエストされている新しいアクセス許可を理解します。

1. **新しいアクセス許可を受け入れる** を選択して、更新されたアクセス許可を付与します。

サービスまたはアプリケーションに変更を加える必要はありません。更新されたアクセス許可を受け入れると、 AWS DevOps Agent が GitHub にリクエストする次のインストールアクセストークンに、新しいアクセス許可が自動的に含まれます。

**注記**  
** アクセス許可の更新を受け入れるまで、 AWS DevOps Agent は以前に付与されたアクセス許可で引き続き動作します。更新されたアクセス許可に依存する新機能は、リクエストを承認するまで使用できません。新しいアクセス許可を受け入れない場合、アプリは現在のアクセス許可を保持します。

### リクエストされた のアクセス許可
<a name="requested-permissions"></a>

次の表は、 AWS DevOps Agent GitHub App がリクエストする各アクセス許可と、それが必要な理由を示しています。

登録時に**読み取り専用**を選択した場合、GitHub アプリは、次の表の各アクセス許可に対してのみ読み取りレベルのアクセスをリクエストします。読み取り専用アクセス許可では、GitHub アプリは **目的** 列にリストされている書き込みレベルのアクションを実行できません。


| アクセス許可 | アクセスレベル | 目的 | 
| --- | --- | --- | 
| チェック | 読み取りと書き込み | プルリクエストでチェックが実行されると、リリース準備状況コードレビューの結果が表示され、レビューステータスが GitHub UI に直接表示されます。 | 
| ワークフロー | 読み取りと書き込み | ワークフロー定義を読み、CI/CD パイプラインでリリーステスト用の GitHub Actions ワークフローをトリガーします。 | 
| アクション | 読み取りと書き込み | インシデント調査とリリーステスト中にGitHub Actions ワークフロー実行をモニタリングし、実行ログにアクセスします。 | 
| 内容 | 読み取りと書き込み | コードレビュー分析と依存関係マッピング用のリポジトリソースコードを読み取ります。書き込みアクセスにより、エージェントは特定された問題の修正を提案できます。 | 
| プルリクエスト | 読み取りと書き込み | プルリクエストの詳細を読み取り、自動コードレビューをトリガーします。書き込みアクセスを使用すると、検出結果と推奨される修正を含むインラインレビューコメントを投稿できます。 | 
| 組織の管理 | 読み取り | ターゲット組織にインストールされているアプリケーションのリストを読み、 AWS DevOps エージェント GitHub アプリがインストールされていることを確認します。 | 

## GitHub 接続の管理
<a name="managing-github-connections"></a>
+ **リポジトリアクセスの更新** – GitHub アプリがアクセスできるリポジトリを変更するには、GitHub アカウントまたは組織設定に移動します。データレジデンシーを持つ GitHub Enterprise Server または GitHub Enterprise Cloud の場合は、インスタンス設定に移動します。次に、インストールされている GitHub Apps に移動し、 AWS DevOps Agent アプリ設定を変更します。
+ **接続されたリポジトリの表示** – AWS DevOps エージェントコンソールで、エージェントスペースを選択し、機能タブに移動して、パイプラインセクションの接続されたリポジトリを表示します。
+ **GitHub 接続の削除** – GitHub をエージェントスペースから切断するには、パイプラインセクションで接続を選択し、**削除**を選択します。アカウントから GitHub 登録を削除するには、**機能プロバイダー**ページに移動し、**GitHub** セクション内で登録を見つけ、**登録解除**を選択します。

GitHub 統合を完全に削除するには、次の手順を実行します。
+ GitHub アプリをアンインストールするには、GitHub アカウントまたは組織設定に移動します。
+ 再接続するには、 AWS DevOps エージェントコンソールで GitHub を再登録します。

データレジデンシーを持つ GitHub Enterprise Server および GitHub Enterprise Cloud の場合、 AWS DevOps Agent は登録時にインスタンスに GitHub アプリを作成します。アプリを完全にクリーンアップするには、次の両方を実行します。
+ **アプリをアンインストール**する – **設定 > アプリケーション > インストールされた GitHub アプリ**に移動し、アプリで**設定**を選択し、アンインストールします。
+ **アプリの削除** – **設定 > デベロッパー設定 > GitHub **アプリに移動し、アプリを選択し、**詳細**タブに移動し、**GitHub アプリの削除**を選択します。**警告:** GitHub アプリの削除は永続的であり、元に戻すことはできません。新しいアプリを作成するには、 AWS DevOps エージェントコンソールで GitHub を再登録します。