Webhookを利用して、コンテンツの更新時にGitHub Actionsを実行する

このチュートリアルでは、Webhook を利用して、コンテンツの更新時にGitHub Actions を実行する手順を紹介します。

前提条件

  1. GitHub Actionsの基本的な概念について理解していること
  2. トリガー部分を除き、実行可能なワークフローを定義済みであること

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]

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の設定

「repo」のスコープを持った、個人アクセストークンを設定します。

2-3. イベントタイプの設定

1で決めたイベントタイプを入力します。

すべて入力すると、以下のようになります。
webhook_github_actions1.jpg

以上で設定は終了です。
一部のコンテンツが更新された時にのみ、Webhookをトリガーする場合は、Webhookの編集画面に入り、「通知対象にするモデル」を指定してください。

これで、通知対象のコンテンツの公開・非公開が変更された時、および公開コンテンツの更新時にリクエストが送信され、ワークフローが実行されます。

Newt Made in Newt