環境構成図

SlackリアクションからのGitHub Issue自動作成

💬Slack

Slackアプリ設定 (api.slack.com):

  • 認証: Bot User OAuth Token (xoxb-...)
  • 必須スコープ (Bot):
    • reactions:read (リアクション検知)
    • channels:history (メッセージ内容取得)
    • users:read (ユーザー情報)
    • (任意) chat:write (確認メッセージ投稿)
  • イベントサブスクリプション:
    • 有効化: オン
    • 購読イベント: reaction_added (Botイベント)
    • リクエストURL: [n8n公開Webhook URL]
⬇️

Slack reaction_added イベント通知 (HTTPS)

☁️AWS (n8nホスティング基盤)

インフラストラクチャ例: EC2 + Docker

  • EC2インスタンス: 例: t3.medium / t2.micro (Ubuntu, Amazon Linux)
  • Docker環境: Docker CE, Docker Compose
  • n8nコンテナ: n8nio/n8n イメージ利用
  • データ永続化: ホストボリュームを /home/node/.n8n にマウント
  • セキュリティグループ: TCPポート 5678 (n8n) を適切なソースIPから許可
  • パブリックアクセス:
    • Elastic IPアドレス (静的IP)
    • (推奨) Application Load Balancer (ALB) + AWS Certificate Manager (ACM) でHTTPS化

n8nインスタンス設定 (ポート 5678)

公開Webhook URL:

https://[your-n8n-domain-or-ip]:5678/webhook/...

ワークフロー構成:

  1. Slackトリガー: 「Reaction Added」イベント
  2. IFノード (任意): 特定の絵文字でフィルタリング
  3. Slackノード (任意): conversations.history で元メッセージ取得
  4. GitHubノード: 「Issue: Create」オペレーション

n8n認証情報:

  • Slack: Bot User OAuth Token
  • GitHub: Personal Access Token
⬇️

GitHub APIリクエスト (HTTPS)

📦GitHub

設定:

  • 認証: Personal Access Token (Classic)
    • スコープ: repo (Issue作成のため)
    • 有効期限: 設定を推奨 (例: 90日)
  • 対象リポジトリ:
    • Issueを作成する特定のリポジトリ
    • (n8n GitHubノードでオーナーとリポジトリ名を指定)