概要
Google Apps Scriptを用いて、Googleスプレッドシートが更新された際、GitHubに通知を送る方法を調べました。合わせて、StrapiやContentfulからGitHubに通知を送る方法も調べたので、備忘録として記録します。
Google Apps Script
以下のようなスクリプトを用意することで、スプレッドシートの更新をGitHubに通知できました。
const token = "ghp_xxx"
const owner = "yyy"
const repo = "zzz"
const event_type = "aaa"
function postSheetChange() {
const headers = {
"Accept": "application/vnd.github+json",
"Authorization": `Bearer ${token}`,
"Content-Type": "application/json"
}
var payload = JSON.stringify({
event_type
});
var requestOptions = {
method: 'POST',
headers,
payload,
};
UrlFetchApp.fetch(`https://api.github.com/repos/${owner}/${repo}/dispatches`, requestOptions)
}
トリガーの設定方法などは以下の記事が参考になりました。

Slackにスプレッドシートの変更がある度に内容を通知する方法
Googleスプレッドシートでチームの管理表を作っていて、その内容をSlackに送って通知を受け取りたいと思ったことはありませんか? 今回は、Google App Scriptを使ってSlackに変更内容を […]
なお、Googleスプレッドシートの更新の都度、GitHubへの通知が行くので、GitHub Actionsのほうで、以下のようなconcurrencyを設定しておくほうがよさそうです。
または、トリガーを特定のセル(列)が更新された時だけ、などにすることも考えられます。
name: Build Test
concurrency:
cancel-in-progress: true
on:
repository_dispatch:
types:
- update_content
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3
...
Strapi
Strapiのwebhookでは、bodyをカスタマイズできないため、以下のようなプロキシサーバを立てる必要があるようです。
GitHub - badsyntax/strapi-webhook-actions-proxy: Strapi webhook proxy to trigger a GitHub repository_dispatch event
Strapi webhook proxy to trigger a GitHub repository_dispatch event - badsyntax/strapi-webhook-actions-proxy
Contentful
Contentfulでwebhookを使用する方法はシンプルでした。以下の記事などが参考になりました。

ContentfulからWebhockでGitHub Actions叩いてGatsbyのプロジェクトをビルドしてNetlifyにDeployする - Qiita
はじめに こんにちは.TikTokで日向坂46のメンバーの目の部分の切り抜きでも誰だか分かるよね?という感じの趣旨の動画を見たのですが、推しの松田好花さんだけわかりませんでした.悔しいです.筆者です. さて、GatsbyのプロジェクトをNetlifyでホスティングしており...
まとめ
Headless CMSでのwebhookの利用において参考になりましたら幸いです。
動画版(生成AIによる自動生成): この記事の内容をずんだもん×四国めたんの掛け合いで解説しています。自動生成のため、内容に誤りがある可能性があります。正確な情報は記事本文をご参照ください。




コメント
…