翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
付録 A: GitHub バージョン 1 のソースアクション
この付録では、 の GitHub アクションのバージョン 1 について説明します CodePipeline。
注記
GitHub バージョン 1 アクションを使用することはお勧めしませんが、 GitHub バージョン 1 アクションを持つ既存のパイプラインは、影響なく動作し続けます。バージョン 1 アクションを持つ GitHubパイプラインの場合、 は OAuthベースのトークン CodePipeline を使用して GitHub リポジトリに接続します。対照的に、 GitHub アクション (バージョン 2) は接続リソースを使用してリソースを GitHub リポジトリに関連付け AWS ます。接続リソースは、アプリベースのトークンを使用して接続します。パイプラインを接続を使用する推奨 GitHub アクションに更新する方法については、「」を参照してください GitHub バージョン 1 のソースアクションを GitHub バージョン 2 のソースアクションに更新する。アプリケーションOAuthベースの GitHub アクセスとは対照的な ベースの GitHub アクセスの詳細については、「」を参照してくださいhttps://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps
と統合するには GitHub、 は GitHub OAuthパイプラインのアプリケーション CodePipeline を使用します。 CodePipeline はウェブフックを使用して、 GitHub バージョン 1 ソースアクションを使用してパイプラインの変更検出を管理します。
注記
で GitHub バージョン 2 のソースアクションを設定する場合 AWS CloudFormation、 GitHub トークン情報を含めたり、ウェブフックリソースを追加したりすることはありません。接続リソースは、 ユーザーガイドの AWS::CodeStarConnections::Connection に示すように設定します。 AWS CloudFormation
このリファレンスには、 GitHub バージョン 1 アクションの以下のセクションが含まれています。
-
GitHub バージョン 1 のソースアクションとウェブフックをパイプラインに追加する方法については、「」を参照してください GitHub バージョン 1 ソースアクションの追加。
-
GitHub バージョン 1 ソースアクションの設定パラメータとサンプルYAML/JSONスニペットの詳細については、「」を参照してくださいGitHub バージョン 1 ソースアクションリファレンス。
重要
CodePipeline ウェブフックを作成するときは、独自の認証情報を使用したり、複数のウェブフックで同じシークレットトークンを再利用したりしないでください。セキュリティを最適化するには、作成するウェブフックごとに一意のシークレットトークンを生成します。シークレットトークンは、指定した任意の文字列で、 GitHubを使用して に送信されたウェブフックペイロードを計算して署名し CodePipeline、ウェブフックペイロードの整合性と信頼性を保護します。独自の認証情報を使用したり、複数のウェブフックで同じトークンを再利用したりすると、セキュリティの脆弱性が発生する可能性があります。
注記
シークレットトークンが提供された場合、レスポンスで編集されます。
GitHub バージョン 1 ソースアクションの追加
GitHub バージョン 1 のソースアクションを に追加するには、次の CodePipeline 操作を行います。
-
CodePipeline コンソールを使用してパイプラインの作成ウィザード (カスタムパイプラインを作成する (コンソール)) またはアクションの編集ページを使用して、GitHubプロバイダーオプションを選択します。コンソールは、ソースが変更されたときにパイプラインを開始するウェブフックを作成します。
-
を使用してアクションの
GitHub
アクション設定CLIを追加し、次のように追加のリソースを作成します。-
GitHub
でのアクション設定の例を GitHub バージョン 1 ソースアクションリファレンス で使用し、パイプラインを作成する (CLI) で表示されるようなアクションを作成します。 -
定期的にチェックを無効にし、変更検出を手動で作成します。これは、変更検出方法によりソースをポーリングすることでパイプラインが開始されるためです。 GitHub バージョン 1 アクションのポーリングパイプラインをウェブフックに移行します。
-
GitHub バージョン 1 ソースアクションリファレンス
注記
GitHub バージョン 1 アクションを使用することはお勧めしませんが、 GitHub バージョン 1 アクションを持つ既存のパイプラインは、影響なく動作し続けます。 GitHub GitHub バージョン 1 のソースアクションを持つパイプラインの場合、 は OAuthベースのトークン CodePipeline を使用して GitHub リポジトリに接続します。対照的に、新しい GitHub アクション (バージョン 2) では、接続リソースを使用して AWS リソースを GitHub リポジトリに関連付けます。接続リソースは、アプリベースのトークンを使用して接続します。パイプラインを接続を使用する推奨 GitHub アクションに更新する方法については、「」を参照してください GitHub バージョン 1 のソースアクションを GitHub バージョン 2 のソースアクションに更新する。
設定された GitHub リポジトリとブランチで新しいコミットが行われると、パイプラインをトリガーします。
と統合するには GitHub、パイプラインのOAuthアプリケーションまたは個人用アクセストークン CodePipeline を使用します。コンソールを使用してパイプラインを作成または編集する場合、 は、リポジトリで変更が発生したときにパイプラインを開始する GitHub ウェブフック CodePipeline を作成します。
GitHub アクションを通じてパイプラインを接続する前に、 GitHub アカウントとリポジトリを既に作成しておく必要があります。
CodePipeline リポジトリへのアクセスを制限する場合は、 GitHub アカウントを作成し、 と統合するリポジトリにのみアクセス許可を付与します CodePipeline。パイプラインのソースステージに GitHub リポジトリを使用する CodePipeline ように を設定するときは、そのアカウントを使用します。
詳細については、 GitHub ウェブサイトのGitHub 開発者向けドキュメント
アクションタイプ
-
カテゴリ:
Source
-
所有者:
ThirdParty
-
プロバイダー:
GitHub
-
バージョン:
1
設定パラメータ
- [所有者]
-
必須:はい
リポジトリを所有 GitHubする GitHub ユーザーまたは組織の名前。
- Repo
-
必須:はい
ソースの変更が検出されるリポジトリの名前。
- ブランチ
-
必須:はい
ソースの変更が検出されるブランチの名前。
- OAuthToken
-
必須:はい
リポジトリで がオペレーションを実行 CodePipeline できるようにする GitHub 認証トークンを表します GitHub 。エントリは、常に 4 つのアスタリスクでマスクされた状態で表示されます。これは、次のいずれかの値を表します。
-
コンソールを使用してパイプラインを作成すると、 はOAuthトークン CodePipeline を使用して GitHub 接続を登録します。
-
を使用してパイプライン AWS CLI を作成する場合、このフィールドで GitHub 個人用アクセストークンを渡すことができます。アスタリスク (****) を、 からコピーされた個人用アクセストークンに置き換えます GitHub。
get-pipeline
を実行してアクション設定を表示すると、この値の 4 つのアスタリスクマスクが表示されます。 -
AWS CloudFormation テンプレートを使用してパイプラインを作成する場合は、まずトークンをシークレットとして に保存する必要があります AWS Secrets Manager。このフィールドの値は、
{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}
など Secrets Manager に保存されたシークレットへの動的リファレンスとして含めます。
GitHub スコープの詳細については、 GitHub ウェブサイトのGitHub 「 デベロッパーAPIリファレンス
」を参照してください。 -
- PollForSourceChanges
-
必須:いいえ
PollForSourceChanges
は、ソースの変更についてリポジトリを CodePipeline GitHubポーリングするかどうかを制御します。この方法の代わりに、ウェブフックを使用してソースの変更を検出することをお勧めします。ウェブフックの設定に関する詳細は、「ポーリングパイプラインをウェブフックに移行する (GitHub バージョン 1 ソースアクション) (CLI)」または「プッシュイベントのパイプラインを更新する (GitHub バージョン 1 ソースアクション) (AWS CloudFormation テンプレート)」を参照してください。重要
ウェブフックを設定する場合、パイプライン実行の重複を避けるため、
PollForSourceChanges
をfalse
に設定します。このパラメータの有効な値:
-
True
: 設定されている場合、 はソースの変更についてリポジトリ CodePipeline をポーリングします。注記
を省略すると
PollForSourceChanges
、 CodePipeline はデフォルトで、ソースの変更についてリポジトリをポーリングします。この動作は、PollForSourceChanges
がtrue
に設定されている場合と同じです。 -
False
: 設定されている場合、 はレポジトリをポーリング CodePipeline してソースを変更しません。ソースの変更を検出するようにウェブフックを構成する場合は、この設定を使用します。
-
入力アーティファクト
-
アーティファクトの数:
0
-
説明: 入力アーティファクトは、このアクションタイプには適用されません。
出力アーティファクト
-
アーティファクトの数:
1
-
説明: このアクションの出力アーティファクトは、パイプライン実行のソースリビジョンとして指定されたコミットで、設定されたリポジトリとブランチの内容を含むZIPファイルです。リポジトリから生成されたアーティファクトは、 GitHub アクションの出力アーティファクトです。ソースコードコミット ID は、トリガーされたパイプライン実行のソースリビジョン CodePipeline として に表示されます。
出力変数
このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。このアクションは、アクションに名前空間がない場合でも、出力変数として表示できる変数を生成します。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。
の変数の詳細については CodePipeline、「」を参照してください変数リファレンス。
- CommitId
-
パイプラインの実行をトリガーした GitHub コミット ID。コミットIDsはコミットSHAの完全です。
- CommitMessage
-
パイプライン実行をトリガーしたコミットに関連付けられた説明メッセージ (存在する場合)。
- CommitUrl
-
パイプラインをトリガーしたコミットのURLアドレス。
- RepositoryName
-
パイプラインをトリガーしたコミットが行われた GitHub リポジトリの名前。
- BranchName
-
ソースの変更が行われた GitHub リポジトリのブランチの名前。
- AuthorDate
-
コミットが認証された日付 (タイムスタンプ形式)。
- CommitterDate
-
コミットがコミットされた日付 (タイムスタンプ形式)。
アクションの宣言 (GitHub の例)
( GitHub OAuth) への接続
コンソールを使用してパイプラインに GitHub リポジトリを初めて追加するときは、リポジトリ CodePipeline へのアクセスを許可するように求められます。トークンには次の GitHub スコープが必要です。
-
repo
スコープ。これは、パブリックおよびプライベートリポジトリからパイプラインにアーティファクトを読み込んでプルする完全制御に使用されます。 -
admin:repo_hook
スコープ。これは、リポジトリフックの完全制御に使用されます。
CLI または AWS CloudFormation テンプレートを使用する場合は、 で既に作成した個人用アクセストークンの値を指定する必要があります GitHub。
以下も参照してください。
このアクションを利用する際に役立つ関連リソースは以下の通りです。
-
AWS CloudFormation ユーザーガイド AWS::CodePipeline::Webhookのリソースリファレンス – これには、 のリソースのフィールド定義、例、スニペットが含まれます AWS CloudFormation。
-
AWS CloudFormation ユーザーガイド AWS::CodeStar::GitHubリポジトリのリソースリファレンス – これには、 のリソースのフィールド定義、例、スニペットが含まれます AWS CloudFormation。
-
チュートリアル: を使用して Android アプリを構築およびテストするパイプラインを作成する AWS Device Farm – このチュートリアルでは、サンプルビルド仕様ファイルとサンプルアプリケーションを提供し、 GitHub ソースを使用してパイプラインを作成します。と を使用して Android アプリを構築 CodeBuild してテストします AWS Device Farm。