概要
Drupalのイベントをトリガーとして、GitHub Actionsを起動する方法の備忘録です。
以下のサイトが参考になりました。

DrupalでWebhookを使用する - Qiita
Drupal Advent Calendar 2023 の2日目です。 システム連携で「Webhook」はよく使われる手段だと思うのですが、Drupal界隈ではWebhook関連の記事を見かけたことがないなとふと気づきました。 本記事では「Drupalが送信する側」であるこ...
pipedreamの設定
triggerとcustom_requestを含むワークフローを作成します。
triggerについては、以下を参考にしてください。
https://qiita.com/hmaruyama/items/3d47efde4720d357a39e#pipedream側の設定
custom_requestにおいて、dispatchに関する設定を行います。

リポジトリの REST API エンドポイント - GitHubドキュメント
REST API を使って、GitHub 上のリポジトリを管理します。
以下のような設定を行います。
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/OWNER/REPO/dispatches \
-d '{"event_type":"webhook"}'


Drupalの設定
以下のモジュールをインストールします。
Webhooks
Webhooks are "user-defined HTTP callbacks". They are usually triggered by some event, such as pushing code to a repository or a comment being posted to a blog.
インストール後、以下のページで設定を行います。
/admin/config/services/webhook

GitHub Actionsの設定
以下のようにrepository_dispatchを設定します。これにより、pipedreamからのリクエストに基づき、GitHub Actionsが実行されます。
name: Build and Deploy to Production
on:
push:
branches:
- main
# Allows external webhook trigger
repository_dispatch:
types:
- webhook
permissions:
contents: read
concurrency:
group: "build-and-deploy"
cancel-in-progress: true
jobs:
...
まとめ
pipedreamを使用せずに、Drupalのカスタムモジュールを作成することにより、GitHubに通知を送る方法もありそうです。(すでにそのようなモジュールが開発されている可能性が高そうですが、見つけることができませんでした。)
参考になりましたら幸いです。
動画版(生成AIによる自動生成): この記事の内容をずんだもん×四国めたんの掛け合いで解説しています。自動生成のため、内容に誤りがある可能性があります。正確な情報は記事本文をご参照ください。



コメント
…