🐡

Drupalのイベントをトリガーとして、GitHub Actionsを起動する

2024/05/28に公開

概要

Drupalのイベントをトリガーとして、GitHub Actionsを起動する方法の備忘録です。

以下のサイトが参考になりました。

https://qiita.com/hmaruyama/items/3d47efde4720d357a39e

pipedreamの設定

triggerとcustom_requestを含むワークフローを作成します。

triggerについては、以下を参考にしてください。

https://qiita.com/hmaruyama/items/3d47efde4720d357a39e#pipedream側の設定

custom_requestにおいて、dispatchに関する設定を行います。

https://docs.github.com/ja/rest/repos/repos?apiVersion=2022-11-28#create-a-repository-dispatch-event

以下のような設定を行います。

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

以下のモジュールをインストールします。

https://www.drupal.org/project/webhooks

インストール後、以下のページで設定を行います。

/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に通知を送る方法もありそうです。(すでにそのようなモジュールが開発されている可能性が高そうですが、見つけることができませんでした。)

参考になりましたら幸いです。

Discussion