開発チャンネルに GitHub の通知を流すと、エンジニア以外のメンバーには PR のタイトルだけでは中身が分からず、読み飛ばされがちです。この記事は、Samurai App のワークフローで PR の説明文を AI に短くまとめさせ、Slack へ送る手順を説明します。
先に書いておくと、通知を受け取るだけなら GitHub 公式の Slack アプリで足ります。 Samurai App を使う理由があるのは、通知の前に AI の要約や仕分けを挟みたい場面です。
結論
- 通知だけなら公式アプリ:
/github subscribe owner/repoで、Issue、PR、コミット、リリース、デプロイの通知が届きます。ラベルでの絞り込みやレビューの通知もここでできます - 要約を添えるなら Samurai App:サービス連携で GitHub の出来事を受け、「AI で生成」のステップで要約し、「通知先へ送る」のステップで Slack へ送ります
- 要約の材料はタイトルと説明文:届く内容に差分は入っていません。説明文が空の PR は、中身の分かる要約になりません
できること・できないこと
公式アプリと Samurai App の違いは次のとおりです。
| 比べる点 | GitHub 公式の Slack アプリ | Samurai App のワークフロー |
|---|---|---|
| 設定の場所 | Slack のスラッシュコマンド | ワークフローの画面 |
| 通知の文面 | アプリが決めた形 | 自分で書く。AI の要約も入れられる |
| ラベルでの絞り込み | +label:"priority:HIGH" |
下の Pull Request Created の「絞り込み」 |
| Slack から PR や Issue を操作 | できる | できない(送るだけ) |
| 費用 | 公式の範囲 | 1 件受けるごとに約 0.5 円(何も実行されなくても)。要約はモデルの利用分も別にかかる |
出来事は、すぐ届くものと、見に行く方式で最大 15 分遅れるものに分かれます。よく使うものは次の 4 つです。「どうなったら動かすか」には左の名前で並びます。
| 画面の名前 | 表記 | 届き方 | 特徴 |
|---|---|---|---|
| Pull Request Event | GITHUB_PULL_REQUEST_EVENT |
すぐ届く | PR が開いた、閉じた、更新されたときに届く。「絞り込み」はリポジトリだけ |
| Issue Added Event | GITHUB_ISSUE_ADDED_EVENT |
すぐ届く | 新しい Issue で届く |
| Pull Request Created | GITHUB_PULL_REQUEST_CREATED |
最大 15 分遅れる | ラベル、向き先のブランチ、作成者、下書きかどうかで絞れる |
| Pull Request Review Submitted | GITHUB_PULL_REQUEST_REVIEW_SUBMITTED_TRIGGER |
最大 15 分遅れる | PR の番号(pull_number)が必須で、1 つの PR だけを監視する |
全 PR のレビューを通知したいなら、公式アプリの /github subscribe owner/repo reviews が向いています。
Pull Request Event は、PR にコミットを追加しただけでも届きます。費用は届いた出来事の数で決まり、「絞り込み」で減るとは限らないので、コミットの多いリポジトリでは件数に注意してください。
できないことは 3 つあります。
- 差分の要約:Pull Request Event が運ぶのは
action、title、description、number、url、createdBy、createdAtです。コードの変更は含まれません - Slack の投稿への返信の受け取り:「通知先へ送る」は送るだけです
- GitHub Enterprise Server の手順:この記事は github.com のリポジトリで書いています。自社で立てたサーバーで動くかは確認していません
用意するもの
- 通知したいリポジトリを読めて、Webhook を作れる GitHub アカウント。GitHub の仕様では、リポジトリの Webhook を作れるのはオーナーか管理者権限のある人です
- Slack の Incoming Webhook の URL。1 つの URL は 1 つのチャンネルに結び付きます
- Samurai App のマネージャー以上の権限。サービス連携をワークフローに付けられるのはマネージャー以上です
手順
完成すると、次のようなワークフローになります。

1. Slack で Incoming Webhook の URL を作る
api.slack.com/apps でアプリを作り、「Incoming Webhooks」をオンにして、「Add New Webhook to Workspace」で開発チャンネルを選びます。発行された https://hooks.slack.com/services/... を控えます。この URL は秘密の情報なので、リポジトリには書かないでください。
2. Samurai App に通知先を登録する

「設定」の「通知」で「名前」と「宛先 URL」を入れ、「通知先を追加」を押します。行の「テスト送信」で、チャンネルに届くことを確認します。登録した URL は以後表示されません。
3. GitHub を接続する
/settings/connections の「コネクタ」のタブで GitHub を追加し、ブラウザでサインインして接続します。
4. ワークフローを作る
「ワークフロー」の「新規作成」で下書きを作ります。ステップを選んでいない状態の「設定」で「入力の項目を追加」を押し、名前を event、種類を「項目の組」にします。受け取った出来事は、この event に入ります。
続けてステップを 2 つ置きます。
「AI で生成」の「指示」には、次のように書きます。
次の PR を、開発者でない人にも分かるように 2 文の日本語で要約してください。説明文が無いときは「説明文なし」とだけ書いてください。
{{input.event}}
「通知先へ送る」は 2 で登録した通知先を選び、「本文」に次のように書きます。AI の結果は / を打つと出る一覧から、「AI で生成」のステップの text を選びます。
{{input.event.title}} (#{{input.event.number}})
{{AI の text を選ぶ}}
{{input.event.url}}
差し込む項目は、届く内容に必ずあるものだけにしてください。無い項目を指定すると、ステップは空のまま送らずに失敗します。Pull Request Event の description は必ず入るとは限らないので、上の例では全体の {{input.event}} ごと AI に渡しています。
チャットで作るなら、「ワークフローを作って。入力は event(項目の組)。AI で生成で input.event を 2 文に要約し、通知先『開発チャンネル』へ送る」のように頼みます。下書きができたら、内容を確認してから次へ進みます。
5. 開いたときだけ通知する
Pull Request Event は更新でも届くので、開いた PR だけを通知したいときは、2 つのステップを「条件分岐」の中へ入れます。「条件を追加」で、{{input.event.action}} が opened と「等しい」を指定します。opened は GitHub の Webhook の表記です。最初の 1 件で実際の値を確認してください。
6. 公開してトリガーを付ける
「保存」のあと、「バージョン」のタブで「バージョン N を公開」を押します。トリガーで動くのは公開したバージョンだけです。
「トリガー」のタブで「サービス連携を追加」を押します。「どのサービスを監視するか」で GitHub の接続を選び、「どうなったら動かすか」で Pull Request Event を選んで、「絞り込み」にリポジトリの持ち主(owner)と名前(repo)を入れます。
7. 試す
テスト用の PR を開きます。「実行」のタブの「最近の実行」に「出来事で起動」の行が増え、各ステップの入力と出力が読めます。ここで event に何が入っているかを確認できます。
動かないとき
- 「どうなったら動かすか」が押せない:先に接続を選びます。接続の一覧が空なら、「コネクタ」で GitHub がまだ接続されていません
- トリガーを登録できない、登録しても届かない:接続したアカウントに、そのリポジトリの管理者権限があるかを確認します。権限を持てないときは、見に行く方式の Pull Request Created に変えてください
- 「最近の実行」に行が増えない:公開を忘れていないかを確認します。下書きのままだとトリガーでは実行されません
- 「通知先へ送る」が失敗する:「通知先」の行に理由が出ます。「宛先の URL が見つかりません。URL を確かめてください(404)」なら、Slack 側で URL が無効になっています
よくある質問
マージされたときだけ通知できますか
GitHub の Webhook では、マージされた PR は action が closed で、merged が true になります。ただし Pull Request Event の項目一覧に merged は載っていないため、closed だけでは「マージせずに閉じた」場合と区別できない可能性があります。最初の 1 件の入力を見て判断してください。
複数のリポジトリをまとめて通知できますか
Pull Request Event はリポジトリごとにトリガーを登録します。Pull Request Created は repo を空にすると、接続したアカウントが読めるリポジトリ全体が対象になり、owner で組織に絞ることもできます。有効にできるサービス連携は 20 個です。
CI の失敗も通知できますか
「GitHub Workflow Run State Changed」(GITHUB_WORKFLOW_RUN_STATE_CHANGED_TRIGGER)は実行の ID(run_id)が必須で、1 回の実行だけを監視する出来事です。リポジトリ全体の CI の失敗を知らせる用途には向きません。公式アプリの /github subscribe owner/repo workflows を使ってください。
関連する使い方
出典
- integrations/slack: Bring your code to the conversations you care about(GitHub 公式の Slack アプリ、2026 年 11 月 4 日確認)
- Creating webhooks(GitHub Docs)
- Webhook events and payloads(GitHub Docs)
- Sending messages using incoming webhooks(Slack)