コンテンツの更新時にGitHub Actionsを実行する
Table of contents
このチュートリアルでは、Webhook を利用して、コンテンツの更新時にGitHub Actions を実行する手順を紹介します。
前提条件
- GitHub Actionsの基本的な概念について理解していること
- トリガー部分を除き、実行可能なワークフローを定義済みであること
GitHub Actionsについて、詳細を知りたい場合はGitHubの GitHub Actions のドキュメントをご確認ください。
概要
GitHub Actionsの repository_dispatch というイベントを利用します。repository_dispatchイベントとは、ワークフローをトリガーできるイベントの1つです。Webhookを利用して、このイベントを発火させることで、ワークフローを実行します。
1. GitHub Actionsの設定
まず、ワークフローをトリガーするrepository_dispatchイベントのタイプを決めます。
ここで決めたイベントタイプはGitHub Actionsの types
のところで指定します。
もし update_content というイベントタイプにした場合、GitHub Actionsのトリガーは以下のようになります。
on:
repository_dispatch:
types: [update_content]
※ repository_dispatchは、ワークフローファイルがデフォルトブランチにある場合にのみワークフローの実行をトリガーします。詳細については GitHubのドキュメント をご確認ください。
2. Webhookの作成
次にWebhookを作成し、指定したイベントタイプでrepository_dispatchイベントを発火できるようにします。
※ repository_dispatchイベントの作成について、詳細を知りたい場合は GitHubのドキュメント をご確認ください。
Newtの管理画面に入り、スペース設定 > Webhook のページから「Webhookを作成」を押し、「Webhookテンプレート」を選択します。
「GitHub Actions」のテンプレートを選びます。
2-1. オーナー名とリポジトリ名の設定
GitHubリポジトリのオーナー名とリポジトリ名を確認します。
例えば、https://github.com/Newt-Inc/newt
というリポジトリがある場合、オーナー名は「Newt-Inc」、リポジトリ名は「newt」となります。
2-2. Tokenの設定
「contents:write」へのアクセスが許可されている個人アクセストークンを設定します。
2-3. イベントタイプの設定
1で決めたイベントタイプを入力します。
すべて入力すると、以下のようになります。
以上で設定は終了です。
一部のコンテンツが更新された時にのみ、Webhookをトリガーする場合は、Webhookの編集画面に入り、「通知対象にするモデル」を指定してください。
これで、通知対象のコンテンツの公開・非公開が変更された時、および公開コンテンツの更新時にリクエストが送信され、ワークフローが実行されます。