YassLab チーム用の、PR レビュー依頼を Slack に通知するカスタムアクションです。
» デフォルト設定を見る
» 通知の実例を見る
» 関連リポジトリを見る
.github/workflows/review.ymlname: Review Request Notify
on:
pull_request:
types: [review_requested]
# 疎通確認用。レビュー依頼を出さずに手動で動かせる (requestee は yasulab にフォールバック)
workflow_dispatch:
jobs:
event:
runs-on: ubuntu-latest
# 推奨: 権限を渡さない
permissions: {} # GITHUB_TOKEN を使わない (Slack への投稿と外部 JSON の取得だけ)
# 同じ job で checkout するなら contents: read を足す
steps:
- name: 🔔 Review Request Notify
uses: yasslab/review_request_notify@main
with:
channel-id: 'YOUR_CHANNEL_ID'
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}channel-id にはチャンネル名をそのまま書けます。SLACK_BOT_TOKEN は
Slack アプリのボットトークンで、chat:write のスコープが要ります。
レビュー依頼を押した人と、依頼された人を Slack の表示名に変換して通知します。
@tasslab memo tasslab :yasulab: yasulab さんからレビュー依頼が来てるよ (◍˃̶ᗜ˂̶◍)ノ
> :github: yasslab/review_request_notify#3 - chore: slack-github-action を v4 に上げる(本文の "引用" | 記号 # と : の確認)
- GitHub ユーザー名 → Slack ユーザー名の変換は
yasslab.jp/members.jsonを参照します - 名簿に無いユーザーは、GitHub のユーザー名をそのまま使います
- fork からの PR では通知されません。 secrets が渡らないため、ジョブが失敗します
平日の 10:00〜18:00(日本時間)だけ、依頼された本人を直接メンションします。
それ以外(早朝・深夜・土日・祝日)は @tasslab 宛のメモとして送り、営業時間になってから
本人に届きます。祝日の判定には yasslab.jp/holidays.json を使います。
夜中にレビュー依頼を出しても、相手を起こさずに済みます。
設定例に workflow_dispatch を入れてあるのは、レビュー依頼を出さずに動作を確認するためです。
requestee は yasulab にフォールバックするので、通知はそこへ届きます。
gh workflow run review.yml --ref mainレビュー依頼が無い状態で走るので、requestee は yasulab に、リンク先は Actions のページに
フォールバックします。Slack に届けば、トークンとチャンネルの設定は正しいと分かります。
実際のレビュー依頼で通る経路(PR のタイトルと URL が本文に入る版)まで確かめたいときは、
PR を作ってレビュアーに tasslab を指名してください。本番と同じ経路を通せます。
./test/test_mapping.sh # ユーザーマッピング確認Copyright © YassLab.