開発しているWebサービスでGitHub Actions連携したいな
と思ったときに、いろいろ調べたときの備忘録。
GitHubの公式ドキュメントだとこのあたり。
- repository_dispatch | ワークフローをトリガーするイベント - GitHub Docs
- Create a repository dispatch event | GitHub Docs
イベントを受け取る
APIで送られたイベントを受け取れるよう、
ワークフローのyamlに以下を追加。
on: repository_dispatch: types: - my-custom-type
送られてくるイベントのタイプは自由で指定でき、
複数記載できるので、任意のイベント名を追加しておく。
イベントを送る
受け取れるようにyamlを変更したので、
GitHub REST APIを使ってイベントを送ってみる。
# POST /repos/{owner}/{repo}/dispatches $ curl \ -X POST \ -H "Accept: application/vnd.github.v3+json" \ -H "Authorization: token <your_token>" \ https://api.github.com/repos/OWNER/REPO/dispatches \ -d '{"event_type":"my-custom-type"}'
event_type
に、さきほどyamlに追記したイベント名を指定すればOK。
GitHub REST APIを使うためにトークンが必要だけど、
の権限が必要
・Create a repository dispatch event | GitHub Docs
注意点
repository_dispatch
でのトリガーは、デフォルトブランチのみ有効らしい。。
デフォルト以外のブランチでは、ワークフローが実行されないことを注意してください。
デフォルトブランチ以外の場合は、workflow_dispatch
を使えばOK
サンプル
これを使ったSSSAPIのWebhook機能のサンプルも作ってみた。
以上!! 便利(*´ω`*)
\🚀アップデート🚀/
— 【公式】SSSAPI / スプレッドシートのJSON API化サービス (@sssapi_app) May 16, 2022
API更新時にWebhook通知ができるように🎉
✅#GitHub Actions連携でWorkflowを実行
✅#Slack 連携で更新結果を通知
✅Custom #API で他の外部サービスとの連携もOK
要望いただいた内容を反映🙌
ぜひぜひご活用ください🥳#SSSAPI #スプレッドシートhttps://t.co/znp6CJGZEs pic.twitter.com/MbGhk2adO9