Auth0の更新情報を自動的に取得し、Slackに通知するための簡単な方法として、Google Apps Script(GAS)を使用してみます。この方法では、GitHubのAPIを使用してAuth0のリポジトリから最新のリリース情報を取得し、その情報をSlackに送信します。
手順概要
- GitHub APIを使用してリリース情報を取得
- 取得した情報をSlackに送信
- 定期的にスクリプトを実行するためのトリガー設定
1. GitHub APIを使用してリリース情報を取得
GitHubのAPIを利用して、Auth0のリポジトリから最新のリリース情報を取得します。以下は、GASでGitHub APIを呼び出すためのサンプルコードです。
function fetchAuth0Releases() {
const url = 'https://api.github.com/repos/auth0/auth0.js/releases/latest'; // Auth0のリポジトリURL
const response = UrlFetchApp.fetch(url, {
headers: {
'Accept': 'application/vnd.github.v3+json'
}
});
const json = JSON.parse(response.getContentText());
return json;
}
2. 取得した情報をSlackに送信
次に、取得したリリース情報をSlackに送信するための関数を作成します。SlackのIncoming Webhookを使用してメッセージを送信します。
function sendToSlack(message) {
const webhookUrl = 'YOUR_SLACK_WEBHOOK_URL'; // SlackのWebhook URLを設定
const payload = JSON.stringify({ text: message });
UrlFetchApp.fetch(webhookUrl, {
method: 'post',
contentType: 'application/json',
payload: payload
});
}
3. 定期的にスクリプトを実行するためのトリガー設定
GASのトリガー機能を使用して、定期的にリリース情報を取得し、Slackに通知するように設定します。
- Google Apps Scriptのエディタで「トリガー」メニューを開き、「トリガーを追加」を選択します。
fetchAuth0Releases関数を選択し、実行頻度を設定します(例:毎日、毎時間など)。
4. 完全なスクリプト例
以下は、上記のすべての機能を統合した完全なスクリプトの例です。
function checkForUpdates() {
const release = fetchAuth0Releases();
const message = `New Release: ${release.name}\n${release.html_url}`;
sendToSlack(message);
}
function fetchAuth0Releases() {
const url = 'https://api.github.com/repos/auth0/auth0.js/releases/latest';
const response = UrlFetchApp.fetch(url, {
headers: {
'Accept': 'application/vnd.github.v3+json'
}
});
const json = JSON.parse(response.getContentText());
return json;
}
function sendToSlack(message) {
const webhookUrl = 'YOUR_SLACK_WEBHOOK_URL';
const payload = JSON.stringify({ text: message });
UrlFetchApp.fetch(webhookUrl, {
method: 'post',
contentType: 'application/json',
payload: payload
});
}
結論
この方法を使用することで、Auth0のリリース情報を自動的に取得し、Slackに通知する仕組みを簡単に構築できます。GASを利用することで、特別なサーバーを用意することなく、手軽に実装できるのが大きな利点です。Webhook URLを適切に設定し、トリガーを設定することで、定期的に最新情報を受け取ることが可能になります。
補足メモ
取得してきた履歴は追いたいので、スプレッドシートに自動的に出力するような機能を併せて実装しても良いかもしれません。

