GitHub コネクション - AWS CodePipeline

GitHub コネクション

接続を使用すると、サードパーティープロバイダを AWS リソースと紐付ける構造の承認と設立ができます。

注記

アカウントで既存の接続を作成または使用する代わりに、別の AWS アカウント 間の共有接続を使用できます。「別のアカウントと共有されている接続を使用する」を参照してください。

注記

この機能は、アジアパシフィック (香港)、アジアパシフィック (ハイデラバード)、アジアパシフィック (ジャカルタ)、アジアパシフィック (メルボルン)、アジアパシフィック (大阪)、アフリカ (ケープタウン)、中東 (バーレーン)、中東 (アラブ首長国連邦)、欧州 (スペイン)、欧州 (チューリッヒ)、イスラエル (テルアビブ)、または AWS GovCloud (米国西部) リージョンでは利用できません。利用可能なその他のアクションについては、「CodePipeline との製品とサービスの統合」を参照してください。欧州 (ミラノ) リージョンでのこのアクションに関する考慮事項については、「CodeStarSourceConnection (Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com、および GitLab セルフマネージドアクションの場合)」の注意を参照してください。

CodePipeline で GitHub または GitHub Enterprise Cloud リポジトリのソースアクションを追加するには、次のいずれかを選択できます。

注記

[設定] からデベロッパーツール コンソールを使用して、接続を作成することもできます。[接続を作成する] を参照してください。

開始する前に、以下を確認してください。

  • GitHub でアカウントを作成しておく必要があります。

  • GitHub のコードリポジトリを予め作成しておく必要があります。

  • 2019 年 12 月 18 日より前に作成された CodePipeline サービスロールを使用する場合は、codestar-connections:UseConnection を AWS CodeStar の接続に使用するアクセス許可の更新が必要になることがあります。手順については、「CodePipeline サービスロールにアクセス許可を追加する」を参照してください。

注記

接続を作成するには、GitHub 組織の所有者である必要があります。組織のリポジトリでない場合、ユーザーがリポジトリの所有者である必要があります。

GitHub (コンソール) への接続を作成する

次の手順を使用して、CodePipeline コンソールを使用して GitHub もしくは GitHub Enterprise Cloud リポジトリに接続アクションを追加します。

注記

これらのステップでは、[リポジトリアクセス] で特定のリポジトリを選択できます。選択されていないリポジトリは、CodePipeline からアクセスしたり表示したりできなくなります。

ステップ1:パイプラインを作成または修正するには

  1. CodePipeline コンソールにサインインします。

  2. 次のいずれかを選択します。

    • パイプラインの作成を選択します。[パイプラインを作成する] の手順に従い最初の画面を完了し、[] を選択します。[送信元] ページの [ソースプロバイダー]で、[GitHub (GitHub アプリ経由)] を選択します。

    • 既存のパイプラインを編集することを選択します。[Edit]、[Edit Stage] の順に選択します。ソースアクションを追加または編集するかを選択します。[アクションを編集する] ページで、[アクション名] に自分のアクション名を入力します。[アクションプロバイダー] で、[GitHub (GitHub アプリ経由)] を選択します。

  3. 以下の いずれかを 実行します。

    • [接続] でプロバイダへの接続をまだ作成していない場合は、[GitHub への接続] を選択します。ステップ 2: GitHub への接続を作成する手順に進みます。

    • [接続] でプロバイダへの接続を既に作成している場合は、その接続を選択します。ステップ 3:接続のソースアクションを保存するに進みます。

ステップ2:GitHub への接続を作成する

接続の作成を選択した後、[GitHub に接続する] ページが表示されます。

GitHub の初期の接続ページを示すコンソールのスクリーンショット。
GitHub への接続を作成するには
  1. [GitHub connection settings] で、[Connection name] に接続名が表示されます。[Connect to GitHub] (GitHub に接続) を選択します。アクセス要求のページが表示されます。

  2. [Authorize AWS Connector for GitHub] を選択します。接続ページには [GitHub Apps] フィールドが表示されます。

    [GitHub Apps] フィールドを含む GitHub の初期の接続ページを示すコンソールのスクリーンショット。
  3. [GitHub Apps] (Bitbucket アプリ) で、アプリのインストールを選択するか、[Install a new app] (新しいアプリをインストールする) を選択してアプリを作成します。

    特定のプロバイダーへのすべての接続に対してアプリを 1 つインストールします。GitHub app 用 ‭AWS‬ コネクターをすでにインストールしている場合は、これを選択してこのステップをスキップしてください。

    注記

    ユーザーアクセストークンを作成する場合は、AWS Connector for GitHub アプリが既にインストール済みであることを確認し、[アプリインストール] フィールドを空のままにします。CodeConnections は、ユーザーアクセストークンを接続に使用します。

  4. AWS Connector for GitHub をインストール」ページで、アプリケーションをインストールするアカウントを選択します。

    注記

    アプリは、GitHub アカウントごとに 1 回だけインストールします。アプリをインストール済みである場合は、Configure (設定) をクリックしてアプリのインストールの変更ページに進むか、戻るボタンでコンソールに戻ることができます。

  5. [Install AWS Connector for GitHub] ページで、デフォルトはそのままで [Install] を選択します。

  6. [Connect to GitHub] ページで、新規インストールの接続 ID が GitHub Apps に表示されます。[接続] を選択します。

ステップ 3: GitHub のソースアクションを保存する

[アクションを編集] ページで次の手順を使用し、ソースアクションを接続情報とともに保存します。

GitHub のソースアクションを保存するには
  1. [リポジトリ名] で、サードパーティーのリポジトリの名前を選択します。

  2. [パイプライントリガー] で、アクションが CodeConnections アクションである場合は、トリガーを追加できます。パイプライントリガー設定を構成し、必要に応じてトリガーでフィルタリングするには、「コードプッシュまたはプルリクエストイベントタイプを使用してトリガーを追加する」で詳細を参照してください。

  3. [Output artifact format (出力アーティファクトのフォーマット)] で、アーティファクトのフォーマットを選択する必要があります。

    • デフォルトのメソッドを使用して GitHub アクションからの出力アーティファクトを保存するには、[CodePipeline default] を選択します。アクションは、Bitbucket リポジトリからファイルにアクセスし、パイプラインアーティファクトストアの ZIP ファイルにアーティファクトを保存します。

    • リポジトリへの URL 参照を含む JSON ファイルを保存して、ダウンストリームのアクションで Git コマンドを直接実行できるようにするには、[Full clone (フルクローン)] を選択します。このオプションは、CodeBuild ダウンストリームアクションでのみ使用できます。

      このオプションを選択した場合は、 で示されるように CodeBuild プロジェクトサービスロールの権限を更新する必要があります。Bitbucket、GitHub、GitHub Enterprise Server、または GitLab.com に接続するための CodeBuild GitClone アクセス許可を追加します。[完全クローン] オプションを使用する方法を示すチュートリアルについては、チュートリアル: CodeCommit パイプラインソースで完全なクローンを使用する を参照してください。

  4. ウィザード上で [次へ] または [保存] を [アクションを編集] ページで選択します。

GitHub (CLI) への接続を作成する

AWS Command Line Interface (AWS CLI) を使用して接続を作成できます。

これを行うには、create-connection コマンドを使用します。

重要

AWS CLI または AWS CloudFormation を使用して作成された接続は、デフォルトで PENDING ステータスになります。CLI または CloudFormation を使用して接続を作成した後、コンソールを使用して接続を編集し、ステータスを AVAILABLE に変更します。

接続を作成する
  1. ターミナル (Linux/macOS/Unix) またはコマンドプロンプト (Windows) を開きます。AWS CLI を使用して、create-connection コマンドを実行し、接続に --provider-type--connection-name を指定します。この例では、サードパーティープロバイダー名は GitHub で、指定された接続名は MyConnection です。

    aws codestar-connections create-connection --provider-type GitHub --connection-name MyConnection

    成功した場合、このコマンドは次のような接続 ARN 情報を返します。

    { "ConnectionArn": "arn:aws:codestar-connections:us-west-2:account_id:connection/aEXAMPLE-8aad-4d5d-8878-dfcab0bc441f" }
  2. コンソールを使用して接続を完了します。詳細については、「Update a pending connection」を参照してください。

  3. パイプラインはデフォルトで、接続ソースリポジトリへのコードのプッシュ時に変更を検出するようになっています。パイプライントリガーを手動リリース用または Git タグ用に設定するには、以下のいずれかを行います。

    • 手動リリースでのみ開始するようにパイプラインのトリガー設定を構成するには、設定に以下の行を追加します。

      "DetectChanges": "false",
    • トリガーでフィルタリングするようにパイプライントリガー設定を構成する方法の詳細については、「コードプッシュまたはプルリクエストイベントタイプを使用してトリガーを追加する」を参照してください。例えば、以下では、パイプライン JSON 定義のパイプラインレベルにタグを追加します。この例では、release-v0release-v1 が包含する Git タグで、release-v2 が除外する Git タグです。

      "triggers": [ { "providerType": "CodeStarSourceConnection", "gitConfiguration": { "sourceActionName": "Source", "push": [ { "tags": { "includes": [ "release-v0", "release-v1" ], "excludes": [ "release-v2" ] } } ] } } ]