GitHubでの新しいレビューリクエストやメンションを検知し、Slackに通知するためのシェルスクリプトです。
このスクリプトは、gh statusコマンドの出力を監視し、以下のイベントをSlackに通知します。
- 新しいレビューリクエスト: あなたがレビュー担当者としてアサインされたPull Request
- 新しいメンション: あなたがメンションされたPull RequestやIssue
通知はレビューリクエストとメンションで別々のメッセージとして送信され、既に通知済みの項目は再通知されません。
このスクリプトを実行するには、以下のツールがインストールされている必要があります。
- GitHub CLI (
gh) curlbase64sha256sum
まず、GitHub CLIでGitHubにログインします。
gh auth loginスクリプト内の設定項目を編集します。
gh-review-notify.shファイルを開き、以下の2つの変数を設定してください。
##################################
# Configuration
# -------------------------------
# ...
# `gh auth token`で取得したトークンをBase64エンコードして設定してください
GH_TOKEN_BASE64="ここにBase64エンコードしたGitHubトークンを設定"
# Slack Webhook URLの設定(環境変数から取得)
SLACK_WEBHOOK_URL_BASE64="ここにBase64エンコードしたSlack Webhook URLを設定"
#################################-
GH_TOKEN_BASE64:- 以下のコマンドでGitHubトークンを取得します。
gh auth token
- 取得したトークンをBase64エンコードして、
GH_TOKEN_BASE64の値として設定します。echo -n "YOUR_GITHUB_TOKEN" | base64
- 以下のコマンドでGitHubトークンを取得します。
-
SLACK_WEBHOOK_URL_BASE64:- SlackでIncoming WebhookのURLを取得します。
- 取得したURLをBase64エンコードして、
SLACK_WEBHOOK_URL_BASE64の値として設定します。echo -n "YOUR_SLACK_WEBHOOK_URL" | base64
Note 最低限平文にならないようにしているだけ
スクリプトに実行権限を与えて実行します。
chmod +x gh-review-notify.sh
./gh-review-notify.shcronを使ってスクリプトを定期的に実行することで、変更を自動的に検知できます。
以下は5分ごとにスクリプトを実行する例です。
動かないときは、環境変数の設定やパスの問題を確認してください。
bash -lでもいいかも。
*/5 * * * * /path/to/gh-review-notify.sh > /dev/null 2>&1/path/to/gh-review-notify.shは、スクリプトの絶対パスに置き換えてください。