付録 A: GitHub バージョン 1 のソースアクション - AWS CodePipeline

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

付録 A: GitHub バージョン 1 のソースアクション

この付録では、 の GitHub アクションのバージョン 1 に関する情報を提供します CodePipeline。

注記

GitHub バージョン 1 アクションを使用することはお勧めしませんが、 GitHub バージョン 1 アクションを含む既存のパイプラインは、影響を受けずに引き続き機能します。バージョン 1 アクションの GitHubパイプラインの場合、 CodePipeline は OAuth ベースのトークンを使用して GitHub リポジトリに接続します。対照的に、 GitHub アクション (バージョン 2) は接続リソースを使用してリソースを GitHub リポジトリに関連付け AWS ます。接続リソースは、アプリベースのトークンを使用して接続します。パイプラインを接続を使用する推奨 GitHub アクションに更新する方法の詳細については、「」を参照してください GitHub バージョン 1 のソースアクションを GitHub バージョン 2 のソースアクションに更新する。アプリベースの GitHub アクセスとは対照的に OAuth ベースの 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 のソースアクションは、 CodePipeline 次の方法で に追加します。

  • CodePipeline コンソールでパイプラインの作成ウィザード (パイプラインを作成する (コンソール)) またはアクションの編集ページを使用して、GitHubプロバイダーオプションを選択します。コンソールは、ソースが変更されたときにパイプラインを開始するウェブフックを作成します。

  • CLI を使用して、GitHub アクションのアクション設定を追加し、次のようにリソースを追加作成します。

    • GitHub でのアクション設定の例を GitHub バージョン 1 ソースアクション構造リファレンス で使用し、パイプラインを作成する (CLI) で表示されるようなアクションを作成します。

    • 定期的にチェックを無効にし、変更検出を手動で作成します。これは、変更検出方法によりソースをポーリングすることでパイプラインが開始されるためです。 GitHub バージョン 1 アクションのポーリングパイプラインをウェブフックに移行します。

GitHub バージョン 1 ソースアクション構造リファレンス

注記

GitHub バージョン 1 アクションを使用することはお勧めしませんが、 GitHub バージョン 1 アクションを含む既存のパイプラインは、影響を受けずに引き続き機能します。 GitHub GitHub バージョン 1 のソースアクションを持つパイプラインの場合、 CodePipeline は OAuth ベースのトークンを使用して 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

必須: はい

が GitHub リポジトリでオペレーションを実行 CodePipeline できるようにする GitHub 認証トークンを表します。エントリは、常に 4 つのアスタリスクでマスクされた状態で表示されます。これは、次のいずれかの値を表します。

  • コンソールを使用してパイプラインを作成すると、 CodePipeline は OAuth トークンを使用して 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 テンプレート)」を参照してください。

重要

ウェブフックを設定する場合、パイプライン実行の重複を避けるため、PollForSourceChangesfalse に設定します。

このパラメータの有効な値:

  • True: 設定されている場合、 はリポジトリにソースの変更を CodePipeline ポーリングします。

    注記

    を省略するとPollForSourceChanges、 CodePipeline はデフォルトでソースの変更についてリポジトリをポーリングします。この動作は、PollForSourceChangestrue に設定されている場合と同じです。

  • False: 設定されている場合、ソースの変更についてリポジトリをポーリング CodePipeline しません。ソースの変更を検出するようにウェブフックを構成する場合は、この設定を使用します。

入力アーティファクト

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

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

出力アーティファクト

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

  • 説明: このアクションの出力アーティファクトは、パイプライン実行のソースリビジョンとして指定されたコミットで設定されたリポジトリとブランチの内容を含む ZIP ファイルです。リポジトリから生成されたアーティファクトは、 GitHub アクションの出力アーティファクトです。ソースコードコミット ID は、トリガーされたパイプライン実行のソースリビジョン CodePipeline として に表示されます。

出力変数

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

の変数の詳細については、 CodePipeline「」を参照してください変数

CommitId

パイプラインの実行をトリガーした GitHub コミット ID。コミット ID は、コミットの完全な SHA です。

CommitMessage

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

CommitUrl

パイプラインをトリガーしたコミットの URL アドレス。

RepositoryName

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

BranchName

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

AuthorDate

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

Git での著者とコミッターの違いに関する詳細については、Scott Chacon と Ben Straub による Pro Git の「コミット履歴の表示」を参照してください。

CommitterDate

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

Git での著者とコミッターの違いに関する詳細については、Scott Chacon と Ben Straub による Pro Git の「コミット履歴の表示」を参照してください。

アクションの宣言 (GitHub の例)

YAML
Name: Source Actions: - InputArtifacts: [] ActionTypeId: Version: '1' Owner: ThirdParty Category: Source Provider: GitHub OutputArtifacts: - Name: SourceArtifact RunOrder: 1 Configuration: Owner: MyGitHubAccountName Repo: MyGitHubRepositoryName PollForSourceChanges: 'false' Branch: main OAuthToken: '{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}' Name: ApplicationSource
JSON
{ "Name": "Source", "Actions": [ { "InputArtifacts": [], "ActionTypeId": { "Version": "1", "Owner": "ThirdParty", "Category": "Source", "Provider": "GitHub" }, "OutputArtifacts": [ { "Name": "SourceArtifact" } ], "RunOrder": 1, "Configuration": { "Owner": "MyGitHubAccountName", "Repo": "MyGitHubRepositoryName", "PollForSourceChanges": "false", "Branch": "main", "OAuthToken": "{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}" }, "Name": "ApplicationSource" } ] },

への接続 GitHub (OAuth )

コンソールを使用してパイプラインに GitHub リポジトリを初めて追加するときは、リポジトリ CodePipeline へのアクセスを許可するように求められます。トークンには以下の GitHub スコープが必要です。

  • repo スコープ。これは、パブリックおよびプライベートリポジトリからパイプラインにアーティファクトを読み込んでプルする完全制御に使用されます。

  • admin:repo_hook スコープ。これは、リポジトリフックの完全制御に使用されます。

CLI または AWS CloudFormation テンプレートを使用する場合は、 で既に作成した個人用アクセストークンの値を指定する必要があります GitHub。

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