

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

# GitHub と CodeDeploy との統合
<a name="integrations-partners-github"></a>

CodeDeploy は、ウェブベースのコードホストおよび共有サービスである [GitHub](https://github.com/about) をサポートします。CodeDeploy は、GitHub リポジトリまたは Amazon S3 バケットに格納されているアプリケーションリビジョンをインスタンスにデプロイできます。CodeDeploy では、EC2 およびオンプレミスデプロイのみ GitHub がサポートされています。

**Topics**
+ [GitHub からの CodeDeploy リビジョンのデプロイ](#github-deployment-steps)
+ [CodeDeploy を使用した GitHub 動作](#github-behaviors)

## GitHub からの CodeDeploy リビジョンのデプロイ
<a name="github-deployment-steps"></a>

GitHub リポジトリからインスタンスへアプリケーションリビジョンをデプロイするには。

1. CodeDeploy およびデプロイする Amazon EC2 インスタンスタイプと互換性があるリビジョンを作成します。

   互換性のあるリビジョンを作成するには、[CodeDeploy のリビジョンを計画する](application-revisions-plan.md) および [CodeDeploy 用のアプリケーション仕様ファイルをリビジョンに追加](application-revisions-appspec-file.md) の手順に従います。

1. GitHub のアカウントを使用して、GitHub リポジトリにリビジョンを追加します。

   GitHub のアカウントを作成するには、「[GitHub への参加](https://github.com/join)」を参照してください。GitHub リポジトリを作成するには、「[Repo の作成](https://help.github.com/articles/create-a-repo/)」を参照してください。

1. CodeDeploy コンソールの**デプロイの作成**ページまたは AWS CLI **create-deployment** コマンドを使用して、GitHub リポジトリから CodeDeploy デプロイ用に設定されたターゲットインスタンスにリビジョンをデプロイします。

   **create-deployment** コマンドを呼び出す場合、最初にコンソールの [**デプロイの作成**] ページを使用して、指定したアプリケーションの推奨 GitHub アカウントの代わりに GitHub を操作するためのアクセス許可を CodeDeploy に付与します。これを行う必要があるのは、アプリケーションごとに 1 度だけです。

   [**Create deployment**] ページを使用して、GitHub レポジトリからデプロイする方法については、「[CodeDeploy でデプロイを作成する](deployments-create.md)」を参照してください。

   **create-deployment** コマンドを呼び出して GitHub レポジトリからデプロイする方法については、「[EC2/ オンプレミスコンピューティングプラットフォームのデプロイ作成 (CLI)](deployments-create-cli.md)」を参照してください。

   CodeDeploy デプロイで使用するためインスタンスを準備する方法については、「[CodeDeploy のためにインスタンスを用いた操作](instances.md)」を参照してください。

詳細については、「[チュートリアル: CodeDeploy を使用して、GitHub からアプリケーションをデプロイします。](tutorials-github.md)」を参照してください。

## CodeDeploy を使用した GitHub 動作
<a name="github-behaviors"></a>

**Topics**
+ [CodeDeploy のアプリケーションを使用した GitHub の認証](#behaviors-authentication)
+ [プライベートおよびパブリックな GitHub リポジトリとの CodeDeploy のやり取り](#behaviors-interactions-private-and-public)
+ [CodeDeploy と組織マネージド型の GitHub リポジトリのやり取り](#behaviors-interactions-organization-managed)
+ [CodeDeploy を使用して CodePipeline から自動的にデプロイする](#behaviors-deploy-automatically)

### CodeDeploy のアプリケーションを使用した GitHub の認証
<a name="behaviors-authentication"></a>

GitHub を操作するためのアクセス許可を CodeDeploy に付与すると、GitHub アカウントとアプリケーションの間の関連付けが CodeDeploy に格納されます。GitHub の他のアカウントにアプリケーションをリンクできます。また、GitHub を操作するための CodeDeploy に対するアクセス許可を取り消すこともできます。

**GitHub アカウントを CodeDeploy のアプリケーションにリンクするには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) で CodeDeploy コンソールを開きます。
**注記**  
「[CodeDeploy の開始方法](getting-started-codedeploy.md)」で設定したのと同じユーザーでサインインします。

1. ナビゲーションペインで [**デプロイ**] を展開し、[**アプリケーション**] を選択します。

1. 別の GitHub アカウントにリンクするアプリケーションを選択します。

1. アプリケーションにデプロイグループがない場合は、[**デプロイグループの作成**] を選択してグループを作成します。詳細については、「[CodeDeploy でデプロイグループを作成する](deployment-groups-create.md)」を参照してください。次のステップで [**デプロイの作成**] を選択するには、デプロイグループが必要です。

1.  [**デプロイ**] から、[**デプロイの作成**] を選択します。
**注記**  
新しいデプロイを作成する必要はありません。これは現在 GitHub の他のアカウントをアプリケーションにリンクする唯一の方法です。

1.  [**デプロイ設定**] の [**リビジョンタイプ**] で、[**アプリケーションは GitHub に格納されています**] を選択します。

1. 次のいずれかを行います。
   + GitHub アカウントへの AWS CodeDeploy アプリケーションの接続を作成するには、別のウェブブラウザタブで GitHub からサインアウトします。[**GitHub token name (GitHub トークン名)**] に、この接続を識別する名前を入力し、[**GitHub に接続**] を選択します。アプリケーションの GitHub を操作することを CodeDeploy に許可するよう求めるメッセージがウェブページに表示されます。ステップ 10 に進みます。
   + 作成済みの接続を使用するには、その名前を [**GitHub token name (GitHub トークン名)**] で選択してから [**GitHub に接続**] を選択します。ステップ 8 に進みます。
   + 別の GitHub アカウントへの接続を作成するには、ウェブブラウザの別のタブで GitHub からサインアウトします。[**GitHub token name (GitHub トークン名)**] に、接続を識別する名前を入力し、[**GitHub に接続**] を選択します。アプリケーションの GitHub を操作することを CodeDeploy に許可するよう求めるメッセージがウェブページに表示されます。ステップ 10 に進みます。

1. GitHub にまだサインインしていない場合は、[**Sign in**] ページの手順に従い、アプリケーションをリンクする GitHub アカウントにサインインします。

1. [**Authorize application**] を選択します。GitHub は指定したアプリケーションの署名 GitHub アカウントの代わりに、CodeDeploy に GitHub を操作するアクセス許可を付与します。

1. デプロイを作成しない場合は、[**Cancel**] を選択します。

**CodeDeploy が GitHub を操作するためのアクセス許可を取り消すには**

1.  AWS CodeDeploy アクセス許可を取り消したい GitHub アカウントの認証情報を使用して、[GitHub](https://github.com/dashboard) にサインインします。

1. GitHub の [[Applications](https://github.com/settings/applications)] ページを開いて、承認されたアプリケーションのリストで [**CodeDeploy**] を見つけ、アプリケーションの承認取り消しの GitHub の手順に従います。

### プライベートおよびパブリックな GitHub リポジトリとの CodeDeploy のやり取り
<a name="behaviors-interactions-private-and-public"></a>

CodeDeploy は、プライベートおよびパブリックの GitHub リポジトリからのアプリケーションのデプロイをサポートします。ユーザーに代わって GitHub にアクセスするアクセス許可を CodeDeploy に付与した場合、CodeDeploy は、そのユーザーの GitHub アカウントがアクセス権を持つすべてのプライベート GitHub リポジトリに対して読み取り/書き込みアクセス権を持ちます。ただし、CodeDeploy は、GitHub リポジトリからのみ読み込みます。プライベート GitHub のリポジトリに書き込むことはありません。

### CodeDeploy と組織マネージド型の GitHub リポジトリのやり取り
<a name="behaviors-interactions-organization-managed"></a>

デフォルトでは、組織によって管理される GitHub リポジトリ (アカウントのプライベートまたはパブリックリポジトリとは対照的に) は、CodeDeploy を含め、サードパーティアプリケーションへのアクセスを許可しません。デプロイは、組織によるサードパーティアプリケーション制限が GitHub で有効化され、GitHub リポジトリからコードをデプロイしようとすると失敗します。この問題を解決する 2 つの方法があります。
+ 組織のメンバーとして、組織の所有者に CodeDeploy へのアクセスを承認するように要求できます。このアクセスをリクエストする手順は、個々のアカウントに対して、すでに CodeDeploy を認証済みかどうかによって異なります。
  + ユーザーのアカウントに CodeDeploy への認証済みアクセス権がある場合は、「[組織への認証済みアプリケーションの承認リクエスト](https://help.github.com/articles/requesting-organization-approval-for-your-authorized-applications/)」を参照してください。
  + ユーザーのアカウントに CodeDeploy への承認済みアクセス権がまだない場合は、「[組織へのサードパーティアプリケーションの承認リクエスト](https://help.github.com/articles/requesting-organization-approval-for-third-party-applications/)」を参照してください。
+ 組織の所有者は、組織に対するサードパーティアプリケーションの制限を無効にできます。詳細については、「[組織に対するサードパーティアプリケーションの制限の無効化](https://help.github.com/articles/disabling-third-party-application-restrictions-for-your-organization/)」を参照してください。

詳細については、「[サードパーティアプリケーションの制限について](https://help.github.com/articles/about-third-party-application-restrictions/)」を参照してください。

### CodeDeploy を使用して CodePipeline から自動的にデプロイする
<a name="behaviors-deploy-automatically"></a>

ソースコードが変わるたびに CodePipeline からデプロイをトリガーできます。詳細については、「[CodePipeline](https://aws.amazon.com/codepipeline/)」を参照してください。