📌
SlackとGitHubの連携で実現する自動化
Slack × GitHub 自動化
SlackやGitHubでは、以下のような課題を解決できます。
- 承認や通知をSlackで自動化したい
- GitHubでのPRやデプロイをSlackに通知したい
本記事では、SlackとGitHubの自動化を「役割」「方法」「実例」に分けて整理します。
SlackとGitHubの自動化の全体像
SlackとGitHubは自動化の得意領域が異なります。
| 領域 | 自動化手段 | 目的 |
|---|---|---|
| Slack(社内業務) | Workflow Builder / Slack Web API / Incoming Webhook | 社内承認・通知・手続き・情報共有 |
| GitHub(開発運用) | GitHub Actions | PRやPushをきっかけにテスト・ビルド・デプロイを自動化 |
両者をつなぐのが WebhookやSlack GitHub Action です。
例: GitHubでPRがマージされたらSlackに通知 → Workflow Builderで承認フローを自動で回す
Slackの自動化手段
1. Workflow Builder(ノーコード業務フロー)
- Slack内でクリック操作だけで承認・通知・分岐などのフローを作成可能
- 例: 休暇申請 → 承認 → チーム通知
- 起動方法: ボタン・フォーム送信、外部Webhook
- コード不要で社内業務フローを自動化できる
2. Slack Web API(プログラム操作)
- コードでSlackを操作可能
- メッセージ投稿・更新
- スレッド返信
- ファイル共有
- チャンネルやユーザー管理
- 条件分岐や複雑な自動化向き
- Webhookとは異なり、任意のタイミングで呼び出して双方向操作できる
3. Incoming Webhook(通知専用)
- URLにデータを送るだけでSlackにメッセージ投稿
- 返信や更新は不可、通知専用
- 例: GitHubでPRがマージされたらSlackに通知
Slack自動化の種類と違い
| 種類 | 用途 | イメージ | 違いの要点 |
|---|---|---|---|
| 起動 | Webhook | Workflow Builderを開始する入口 | 承認・分岐など業務フローを回すための入口 |
| 操作 | Slack Web API | 投稿・更新・返信・ファイル共有など細かい操作 | 自由度が最も高く、双方向での操作が可能 |
| 通知 | Incoming Webhook | 簡単なメッセージ投稿(通知専用) | 単発通知を素早く送る最短ルート、更新や返信は不可 |
Webhookは「イベントを受け取って処理を開始する仕組み」、Slack Web APIは「任意のタイミングで操作する仕組み」です。
GitHub Actionsとの違い
| 領域 | 自動化手段 | できること |
|---|---|---|
| Slack | Workflow Builder | 承認・通知・分岐など社内手続き |
| GitHub | GitHub Actions | PR/Push/Releaseのテスト・ビルド・デプロイ |
組み合わせ例
- GitHubでPRマージ
- Slack GitHub Actionで通知
- Webhook経由でWorkflow Builderの承認フロー起動
- Slackで承認・告知・次作業を自動実行
→ 業務フローはSlack、処理はGitHub で役割を分けるイメージ
Webhookの理解
Webhook = 「決まったURLにデータを送ると相手(今回で言うとSlack)の処理が始まる仕組み」
- Workflow起動用Webhook: Workflow Builderが発行するURLにPOSTすると、Slack側で定義済みの業務フローが開始されます
- Incoming Webhook(通知専用): チャンネルに紐づくURLへPOSTすると、Slackにメッセージが投稿されます(返信・更新不可)
- Slack Web API: 任意のタイミングで呼び出して双方向操作できるため、Webhookのような「受け口」ではなく操作全般を行うためのAPIです
具体的な自動化例
開発運用
-
chat.postMessage→ デプロイ開始通知 -
chat.update→ 進捗更新 -
files.uploadV2→ ビルド結果共有
業務フロー
- Workflow Builderで休暇申請 → 承認 → チーム通知を自動化
連携起動
- GitHubイベント → WebhookでSlack Workflow Builder起動 → 承認・告知フロー実行
まとめ
- Slack → 社内業務の承認・通知・手続きフロー
- GitHub → 開発作業のCI/CD
- Webhook / Slack GitHub Action → 両者をつなぐ橋渡し
Discussion