🚀
概念 #n8n #ユースケース #GitHub #Slack #デプロイ通知 #CI/CD #DevOps 📚 n8nワークフロー自動化

GitHubデプロイイベントをSlackに通知する

GitHub Triggerでpush/deploymentイベントを検知し、デプロイ環境・コミット情報・ステータスをSlackの開発チャンネルにリッチフォーマットで自動通知するワークフロー。

ユースケース概要

GitHubのDeployment/Deployment Statusイベントを検知し、デプロイ開始・成功・失敗をSlackに分かりやすく通知する。失敗時はエラー担当者へのメンションも自動で行う。

解決する課題: デプロイ状況をSlackで追跡する際の手動確認作業をなくし、チーム全員がリアルタイムで把握できる

使用するn8nノード:

  • Webhook Trigger(GitHub Webhookイベント受信)
  • Switch(イベント種別・ステータスで分岐)
  • Slack(Slackブロックキット形式で通知)

ワークフロー構成

[Webhook Trigger: GitHub deployment_status webhook]

[Switch: deployment_status.state]
  ├── "pending"  → [Slack: 🔄 デプロイ開始通知]
  ├── "success"  → [Slack: ✅ デプロイ成功通知]
  ├── "failure"  → [Slack: ❌ デプロイ失敗通知(担当者メンション)]
  └── "error"    → [Slack: 🚨 エラー通知]

実装手順

Step 1: GitHub Webhookの設定

GitHub側の設定:

Repository → Settings → Webhooks → Add webhook
Payload URL: https://your-n8n.example.com/webhook/github-deploy
Content Type: application/json
Events: Deployment, Deployment status

Step 2: Switchノードで状態分岐

Mode: Expression
Output 0 (pending):  {{ $json.deployment_status?.state === 'pending' }}
Output 1 (success):  {{ $json.deployment_status?.state === 'success' }}
Output 2 (failure):  {{ $json.deployment_status?.state === 'failure' }}
Output 3 (default):  {{ true }}

Step 3: Slackへのリッチ通知(成功時)

Slackのブロックキット形式でリッチなメッセージを送信する。

Resource: Message
Operation: Send
Channel: #deployments
Blocks (JSON):
[
  {
    "type": "header",
    "text": { "type": "plain_text", "text": "✅ デプロイ成功" }
  },
  {
    "type": "section",
    "fields": [
      { "type": "mrkdwn", "text": "*リポジトリ:*\n{{ $json.repository.full_name }}" },
      { "type": "mrkdwn", "text": "*環境:*\n{{ $json.deployment.environment }}" },
      { "type": "mrkdwn", "text": "*ブランチ:*\n{{ $json.deployment.ref }}" },
      { "type": "mrkdwn", "text": "*実行者:*\n{{ $json.sender.login }}" }
    ]
  },
  {
    "type": "actions",
    "elements": [
      { "type": "button", "text": { "type": "plain_text", "text": "デプロイを見る" },
        "url": "{{ $json.deployment_status.target_url }}" }
    ]
  }
]

Step 4: 失敗時の担当者メンション

Text: ❌ デプロイ失敗 <@U_ONCALL_USER_ID>
確認をお願いします: {{ $json.deployment_status.log_url }}

ポイント・注意事項

  • GitHub AppよりPersonal Access TokenのWebhookは組織全体に設定できない。組織Webhookには管理者権限が必要
  • Slackのブロックキット形式は blocks フィールドに配列を渡す。n8nのJSON入力で直接記述できる
  • デプロイ担当者のGitHub usernameからSlack IDへのマッピングテーブルをGoogleシートで管理するパターンが運用しやすい

関連機能

  1. 1. 🔄n8n概要 - ワークフロー自動化プラットフォーム
  2. 2. ⚙️n8nワークフローの基本(ノード・コネクション・実行)
  3. 3. n8nトリガーの種類(Webhook・スケジュール・イベント)
  4. 4. 🔀n8nロジック制御(フィルター・条件分岐・ループ・マージ)
  5. 5. 🌐n8n HTTP Request・API連携
  6. 6. 🔗n8n主要インテグレーション(Slack・Gmail・GitHub)
  7. 7. 🛡️n8nエラーハンドリング・デバッグ
  8. 8. 🤖n8n AI・LLMエージェント(Chain・Agent)
  9. 9. 💻n8n Codeノード・カスタム処理
  10. 10. 🏢n8nエンタープライズ機能(ソース管理・シークレット・チーム管理)
  11. 11. 🌤️毎朝SlackにAIで天気・ニュースを通知する
  12. 12. 📊GitHubのPRをGoogleシートに自動記録する
  13. 13. 📧新規ユーザー登録時にWelcomeメールを自動送信する
  14. 14. 💳StripeのWebhookで決済完了を検知して処理する
  15. 15. 📈スケジュールトリガーで週次レポートを自動生成する
  16. 16. 🎫Gmailトリガーでサポートメールを自動Notionチケット化する
  17. 17. 🎯条件分岐でリード属性に応じて担当者を振り分ける
  18. 18. 📨ループ処理でリストを走査し一括メール送信する
  19. 19. 📋複数APIのデータをマージして統合レポートを作成する
  20. 20. 🗄️外部REST APIからデータを取得してDBに保存する
  21. 21. 🔍GraphQL APIでGitHubのIssueを取得・加工する
  22. 22. 🔐Bearer認証付きAPIを呼び出してデータ同期する
  23. 23. SlackとNotionを連携したチームタスク管理フロー
  24. 24. 🤝GmailとHubSpotを連携したCRM自動化フロー
  25. 25. 🚀GitHubデプロイイベントをSlackに通知する
  26. 26. 🚨APIエラー発生時にSlackへアラートを送る
  27. 27. 🔁リトライ付きの堅牢なデータ同期フローを構築する
  28. 28. 📝エラーログをAirtableに自動記録する
  29. 29. 🤖LLMを使ったカスタマーサポート自動応答ボット
  30. 30. 🔎ドキュメントRAG検索システムを構築する
  31. 31. 📬AIでメール内容を自動分類・ルーティングする
  32. 32. 🔧JavaScriptで複雑なデータ変換処理を実装する
  33. 33. 📄npmライブラリを使ったPDF自動生成フロー
  34. 34. ✔️カスタムバリデーションロジックをCodeノードで実装する
  35. 35. 🗂️Gitでワークフローをバージョン管理する
  36. 36. 🌍環境変数で本番・ステージングを切り替える
  37. 37. 👥チームでのワークフロー共同管理フロー
  38. 38. 📋AIで履歴書を自動スクリーニング・スコアリングする
  39. 39. 🧾請求書PDFをOCRで自動データ入力・会計ソフト登録する
  40. 40. 📱ブログ記事→SNS自動投稿パイプラインを構築する
  41. 41. 📦Shopify注文処理を完全自動化する(在庫・配送・顧客通知)
  42. 42. 🔔予約リマインダーを自動送信してノーショーを削減する
  43. 43. 📊経営ダッシュボードを毎朝Slackに自動配信する
  44. 44. 🔭競合情報を自動収集してWeeklyレポートにまとめる
  45. 45. 🎉新入社員オンボーディングを完全自動化する

出典: https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.githubtrigger/