CodeStarSourceConnection (Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com、および GitLab セルフマネージドアクションの場合) - AWS CodePipeline

CodeStarSourceConnection (Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com、および GitLab セルフマネージドアクションの場合)

接続のソースアクションは AWS CodeConnections でサポートされています。CodeConnections を使用すると、AWS リソースとサードパーティリポジトリ ( GitHub など) との間の接続を作成および管理できます。サードパーティーのソースコードリポジトリで新しいコミットが行われたときに、パイプラインを開始します。ソースアクションは、パイプラインが手動で実行されたとき、またはソースプロバイダから webhook イベントが送信されたときに、コードの変更を取得します。

パイプラインのアクションを設定して、トリガーでパイプラインを開始できる Git 設定を使用できます。トリガーを使用してフィルタリングするようにパイプラインのトリガー設定を構成する方法の詳細については、「コードプッシュまたはプルリクエストのトリガーをフィルタリングする」を参照してください。

注記

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

Connections は、以下のサードパーティーリポジトリと AWS リソースを関連付けることができます。

  • Bitbucket Cloud (CodePipeline コンソールの Bitbucket プロバイダーオプションまたは CLI の Bitbucket プロバイダーを使用)

    注記

    Bitbucket Cloudリポジトリへの接続を作成できます。Bitbucket サーバーなど、インストールされている Bitbucket プロバイダーのタイプはサポートされていません。

  • 注記

    Bitbucket ワークスペースを使用している場合、接続を作成するには管理者アクセス権が必要です。

  • GitHub および GitHub Enterprise Cloud (CodePipeline コンソールの GitHub (Version 2) プロバイダーオプションまたは CLI の GitHub プロバイダーを使用)

    注記

    リポジトリが GitHub 組織に属している場合、接続を作成するには組織の所有者であることが必要です。組織に属していないリポジトリを使用する場合は、リポジトリの所有者であることが必要です。

  • GitHub Enterprise Server (CodePipeline コンソールの GitHub Enterprise Server プロバイダーオプションまたは CLI の GitHub Enterprise Server プロバイダーを使用)

  • GitLab.com (CodePipeline コンソールの GitLab プロバイダーオプションまたは CLI の GitLab プロバイダーを使用)

    注記

    GitLab で、自分が所有者ロールを持っているリポジトリへの接続を作成すると、その接続を CodePipeline などのリソースを含むリポジトリで使用できます。グループ内のリポジトリでは、グループの所有者である必要はありません。

  • GitLab (エンタープライズエディションまたはコミュニティエディション) のセルフマネージドインストール (CodePipeline コンソールの GitLab セルフマネージドプロバイダーオプションまたは CLI の GitLabSelfManaged プロバイダーを使用)

注記

各接続は、そのプロバイダーのすべてのリポジトリをサポートします。プロバイダーの種類ごとに新しい接続を作成する必要があります。

Connections により、パイプラインはサードパーティープロバイダーのインストールアプリを通じてソースの変更を検出することができます。例えば、webhooks は GitHub イベントタイプのサブスクライブに使用され、組織、リポジトリ、または GitHub アプリにインストールできます。接続によって、GitHub プッシュタイプのイベントをサブスクライブするリポジトリ webhook が GitHub アプリにインストールされます。

コードの変更が検出された後は、後続のアクションにコードを渡すための次のオプションがあります。

  • デフォルト: 他の既存の CodePipeline ソースアクションと同様に、CodeStarSourceConnection はコミットの浅いコピーを含む ZIP ファイルを出力できます。

  • フルクローン: CodeStarSourceConnection は、後続のアクションのためにリポジトリへの URL リファレンスを出力するように設定することも可能です。

    現在、Git URL リファレンスは、リポジトリと関連する Git メタデータをクローンするためにダウンストリーム CodeBuild アクションでのみ使用できます。Git URL リファレンスを CodeBuild 以外のアクションに渡そうとすると、エラーが発生します。

CodePipeline は、接続の作成時にサードパーティーアカウントに AWS コネクタのインストールアプリを追加するよう要求します。CodeStarSourceConnection アクションを介して接続する前に、サードパーティープロバイダのアカウントとリポジトリを作成しておく必要があります。

注記

AWS CodeStar 接続を使用するために必要なアクセス許可を持つロールにポリシーを作成またはアタッチするには、Connections アクセス許可リファレンスを参照してください。CodePipeline サービスロールを作成したタイミングによっては、AWS CodeStar 接続をサポートするためにアクセス許可の更新が必要になる場合があります。手順については、CodePipeline サービスロールにアクセス許可を追加する を参照してください。

注記

欧州 (ミラノ) AWS リージョン で接続を使用するには、以下を行う必要があります。

  1. リージョン固有のアプリをインストールする

  2. リージョンを有効にする

このリージョン固有のアプリで、欧州 (ミラノ) リージョンの接続をサポートします。サードパーティープロバイダーのサイトで公開されているアプリであり、他のリージョンの接続をサポートする既存のアプリとは別のものです。このアプリをインストールすることで、このリージョンでのみサービスとデータを共有することをサードパーティープロバイダーに許可します。アプリをアンインストールすることでいつでもアクセス許可を取り消すことができます。

リージョンを有効にしない限り、サービスはデータを処理または保存しません。このリージョンを有効にすることで、データを処理および保存するアクセス許可をサービスに付与したことになります。

リージョンが有効になっていなくても、リージョン固有のアプリがインストールされたままであれば、サードパーティープロバイダーはお客様のデータをサービスと共有できます。したがって、リージョンを無効にしたら、必ずアプリをアンインストールしてください。詳細については、「リージョンの有効化」を参照してください。

アクションタイプ

  • カテゴリ:Source

  • 所有者: AWS

  • プロバイダー: CodeStarSourceConnection

  • バージョン: 1

設定パラメータ

ConnectionArn

必須: はい

ソースプロバイダに対して設定および認証された接続 ARN。

FullRepositoryId

必須: はい

ソースの変更が検出される所有者とリポジトリの名前。

例:some-user/my-repo

重要

FullRepositoryId 値の大文字と小文字は正しく保持する必要があります。例えば、ユーザー名が some-user で、リポジトリ名が My-Repo の場合、FullRepositoryId の推奨値は some-user/My-Repo です。

BranchName

必須: はい

ソースの変更が検出されるブランチの名前。

OutputArtifactFormat

必須:いいえ

出力アーティファクト形式を指定します。CODEBUILD_CLONE_REF または CODE_ZIP のいずれかになります。指定しない場合、デフォルトの CODE_ZIP が使用されます。

重要

CODEBUILD_CLONE_REF のオプションは、CodeBuild のダウンストリームアクションでのみ使用可能です。

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

DetectChanges

必須:いいえ

設定したリポジトリとブランチで新しいコミットが行われたときに、パイプラインを自動的にスタートするように制御します。未指定の場合、デフォルト値は true となり、フィールドはデフォルトで表示されません。このパラメータの有効な値:

  • true: CodePipeline は、新しいコミットでパイプラインを自動的に開始します。

  • false: CodePipeline は新しいコミットでパイプラインを開始しません。

入力アーティファクト

  • アーティファクトの数: 0

  • 説明: 入力アーティファクトは、このアクションタイプには適用されません。

出力アーティファクト

  • アーティファクトの数: 1

  • 説明: レポジトリから生成されたアーティファクトは、CodeStarSourceConnection アクションに対する出力アーティファクトです。ソースコードのコミット ID は、パイプライン実行のトリガーとなるソースリビジョンとして、CodePipeline に表示されます。このアクションの出力アーティファクトは、次で構成できます。

    • パイプライン実行のソースレビジョンとして指定されたコミットで設定されたレポジトリおよびブランチのコンテンツを含む ZIP ファイル。

    • リポジトリへの URL リファレンスを含む JSON ファイル。これで下流のアクションが Git コマンドを直接実行できるようになります。

      重要

      このオプションは、CodeBuild ダウンストリームアクションでのみ使用できます。

      このオプションを選択した場合は、CodePipeline のトラブルシューティング で示されるように CodeBuild プロジェクトサービスロールの権限を更新する必要があります。[フルクローン] オプションを使用する方法を示すチュートリアルについては、チュートリアル: CodeCommit パイプラインソースで完全なクローンを使用する を参照してください。

出力変数

このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。このアクションは、アクションに名前空間がない場合でも、出力変数として表示できる変数を生成します。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。

詳細については、「変数リファレンス」を参照してください。

AuthorDate

コミットが認証された日付 (タイムスタンプ形式)。

BranchName

ソースが変更された リポジトリのブランチの名前。

CommitId

パイプライン実行をトリガーした コミット ID。

CommitMessage

パイプライン実行をトリガーしたコミットに関連付けられた説明メッセージ (存在する場合)。

ConnectionArn

ソースプロバイダに対して設定および認証された接続 ARN。

FullRepositoryName

パイプラインをトリガーしたコミットが行われた リポジトリの名前。

アクションの宣言

次の例では、CODE_ZIP ARN との接続で出力アーティファクトが arn:aws:codestar-connections:region:account-id:connection/connection-id のデフォルト ZIP 形式に設定されています。

YAML
Name: Source Actions: - InputArtifacts: [] ActionTypeId: Version: '1' Owner: AWS Category: Source Provider: CodeStarSourceConnection OutputArtifacts: - Name: SourceArtifact RunOrder: 1 Configuration: ConnectionArn: "arn:aws:codestar-connections:region:account-id:connection/connection-id" FullRepositoryId: "some-user/my-repo" BranchName: "main" OutputArtifactFormat: "CODE_ZIP" Name: ApplicationSource
JSON
{ "Name": "Source", "Actions": [ { "InputArtifacts": [], "ActionTypeId": { "Version": "1", "Owner": "AWS", "Category": "Source", "Provider": "CodeStarSourceConnection" }, "OutputArtifacts": [ { "Name": "SourceArtifact" } ], "RunOrder": 1, "Configuration": { "ConnectionArn": "arn:aws:codestar-connections:region:account-id:connection/connection-id", "FullRepositoryId": "some-user/my-repo", "BranchName": "main", "OutputArtifactFormat": "CODE_ZIP" }, "Name": "ApplicationSource" } ] },

インストールアプリケーションのインストールと接続の作成

コンソールを使用してサードパーティーリポジトリに新しい接続を初めて追加するときは、リポジトリへの CodePipeline アクセスを認可する必要があります。サードパーティーコードリポジトリを作成したアカウントに接続するためのインストールアプリを選択または作成します。

AWS CLI または AWS CloudFormation のテンプレートを使用する場合、すでにインストールハンドシェイクを通過した接続の接続 ARN を提供する必要があります 提供しないと、パイプラインはトリガーされません。

注記

CodeStarSourceConnection ソースアクションの場合、webhook を設定したり、ポーリングをデフォルトにする必要はありません。接続アクションは、ソースの変更検出を管理します。

このアクションを利用する際に役立つ関連リソースは以下の通りです。

  • [AWS::CodeStarConnections::Connection]- AWS CloudFormation CodeStar Connections リソースの AWS テンプレートリファレンスでは、AWS CloudFormation テンプレートの接続のパラメータと例を提供します。

  • [AWS CodeStar Connections API Reference]-[AWS CodeStar Connections API Reference] では、利用可能な接続アクションのリファレンス情報を提供しています。

  • 接続でサポートされているソースアクションでパイプラインを作成するステップについては、以下を参照してください。

    • Bitbucket Cloud の場合は、コンソールの [Bitbucket] オプションまたは CLI の CodestarSourceConnection アクションを使用します。「Bitbucket Cloud への接続」を参照してください。

    • GitHub および GitHub Enterprise Cloud の場合、コンソールの [GitHub] プロバイダオプションまたは CodestarSourceConnection CLI のアクションを使用します。「GitHub コネクション」を参照してください。

    • GitHub Enterprise Server の場合は、コンソールの [GitHub Enterprise Server] プロバイダオプション、または CodestarSourceConnection CLI のアクションを使用します。「GitHub Enterprise Server 接続」を参照してください。

    • GitLab.com の場合は、コンソールの GitLab プロバイダーオプション、または CLI の CodestarSourceConnection アクションとGitLab プロバイダーを使用します。「GitLab.com への接続」を参照してください。

  • Bitbucket ソースと CodeBuild アクションを使用してパイプラインを作成する スタートアップチュートリアルを表示するには、[接続をはじめよう] を参照してください。

  • GitHub リポジトリに接続し、ダウンストリーム CodeBuild アクションで [フルクローン] オプションを使用する方法を紹介したチュートリアルは、チュートリアル: CodeCommit パイプラインソースで完全なクローンを使用する を参照してください。