🍣
Google スプレッドシートの更新をGitHubに通知する
概要
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)
}
トリガーの設定方法などは以下の記事が参考になりました。
なお、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をカスタマイズできないため、以下のようなプロキシサーバを立てる必要があるようです。
Contentful
Contentfulでwebhookを使用する方法はシンプルでした。以下の記事などが参考になりました。
まとめ
Headless CMSでのwebhookの利用において参考になりましたら幸いです。
Discussion