コンテンツにスキップ

Discord → GitHub Issue 自動作成ガイド

📁 docs/discord-bot/artifact/discord-issue-integration.md

Discord のリアクションやコメントから GitHub Issue を自動作成する仕組み。

全体像

Discord                        GitHub                        リポジトリ
  │                              │                              │
  ├─ 📌 リアクション ──→ Issue作成(知りたい用語)──→ Actions ──→ docs/glossary/*.md
  ├─ ❤️ リアクション ──→ Issue作成(idea)                       + Discord通知
  ├─ 🔧 リアクション ──→ Issue作成(enhancement)
  ├─ 「知りたい: 〇〇」──→ Issue作成(知りたい用語)
  ├─ 「改善: 〇〇」────→ Issue作成(enhancement)
  └─ ⭐/💡 ─────────→ [Bot投稿のみ] Issue作成([Discord反応] 改善検討)

リアクションで Issue を作成

任意のチャンネルのメッセージに絵文字リアクションを付けると、自動で Issue が作成されます。

ユーザーメッセージへのリアクション

リアクション ラベル 用途
📌 知りたい用語 用語を調査したい → 自動で Gemini が調査し Markdown を生成
❤️ idea 気になる話題・アイデアを Issue に残したい
🔧 enhancement 改善タスクとして Issue に登録したい

AI(Bot)投稿へのリアクション — 改善検討 Issue 作成

Bot が Discord に投稿したメッセージに ⭐ または 💡 をリアクションすると、 「その投稿内容を元に今の仕組みを改善するか検討する」Issue が自動作成されます。

リアクション ラベル 用途
claude-ok, area:dev Bot の投稿を保存して改善検討 Issue にしたい
💡 claude-ok, area:dev Bot の投稿からアイデアを Issue にしたい

[!NOTE] この機能は Bot が投稿したメッセージのみ 有効です。 ユーザーのメッセージに ⭐/💡 を付けても Issue は作成されません。

動作

  1. Bot(AI)が何かを Discord に投稿する(要約・分析・提案など)
  2. 投稿内容が参考になると感じたら ⭐ または 💡 をリアクション
  3. Bot が投稿内容を要約してタイトルを生成: [Discord反応] {要約}
  4. claude-ok, area:dev ラベル付きの GitHub Issue を作成
  5. Issue 本文に元の投稿全文・メッセージリンク・検討チェックリストを含める

[Bot の投稿]
「今日のトレンド: Rust で書かれた DB が PostgreSQL より 10 倍速いらしい」

→ ⭐ リアクション

→ Bot: ✅ 改善検討 Issue を作成しました:
        [Discord反応] 今日のトレンド: Rust で書かれた DB が PostgreSQL より 10 倍速いらしい
        https://github.com/KZ55230/MyLab/issues/XX

設定のカスタマイズ

scripts/discord_bot/reaction_config.yaml を編集することで、 コードを変更せずにトリガー絵文字・ラベルを変更できます。

ai_feedback_reactions:
  "⭐":
    labels: ["claude-ok", "area:dev"]
    title_prefix: "[Discord反応]"
  "💡":
    labels: ["claude-ok", "area:dev"]
    title_prefix: "[Discord反応]"

動作

  1. メッセージに上記の絵文字をリアクション
  2. Bot がメッセージからタイトルを抽出:
  3. Bot の用語調査 embed → embed タイトルから用語名を取得
  4. 通常メッセージ → 1行目をタイトルとして使用
  5. GitHub Issue を作成(元メッセージの内容が本文に含まれる)
  6. Bot が確認メッセージを返す

[Discord メッセージ]
「Kubernetes ってコンテナオーケストレーションツールらしい」

→ 📌 リアクション

→ Bot: ✅ Issue を作成しました: 知りたい用語: Kubernetes ってコンテナオーケストレーションツールらしい
       https://github.com/KZ55230/MyLab/issues/XX

コメントで Issue を作成

特定のキーワードで始まるメッセージを投稿すると Issue が作成されます。

パターン ラベル
知りたい: 〇〇 知りたい用語 知りたい: WebAssembly
改善: 〇〇 enhancement 改善: Bot のレスポンス速度を上げたい

: は全角 でもOK

「知りたい用語」の自動調査フロー

📌 リアクションや「知りたい: 〇〇」で Issue が作成されると、以下が自動実行されます:

  1. Issue に「知りたい用語」ラベルが付く
  2. GitHub Actions が自動起動
  3. Gemini API (Flash) で用語を調査
  4. docs/glossary/<用語名>.md としてコミット
  5. Issue にコメントで完了通知 → 自動クローズ
  6. Discord #it-knowledge に調査結果を全文投稿

重複チェック

同じタイトルの open Issue が既にある場合、新しい Issue は作成されません。 Bot は「ℹ️ 既に Issue に登録済みです」と通知します。

Issue の本文

リアクション/コメントで作成された Issue には、元の Discord メッセージのコンテキストが記録されます:

> Discord #it-knowledge からの投稿
> 投稿者: kazuma
> 日時: 2026-03-05 08:30 UTC

## 元メッセージ
Kubernetes ってコンテナオーケストレーションツールらしい

セットアップ

前提条件

  • MyLabBot が起動していること(scripts/discord_bot/start_bot.bat
  • GitHub PAT が Credentials/github_pat.json に設定済み
  • Gemini API キーが GitHub Secrets に GEMINI_API_KEY として登録済み
  • Discord Webhook が GitHub Secrets に DISCORD_WEBHOOK_IT_KNOWLEDGE として登録済み

Bot の起動

# Windows
scripts\discord_bot\start_bot.bat

# または直接
cd scripts/discord_bot
python bot.py

Bot に必要な権限(Discord Developer Portal)

  • Privileged Gateway Intents: Message Content Intent, Server Members Intent
  • Bot Permissions: Read Messages, Send Messages, Read Message History, Add Reactions

関連ファイル

ファイル 役割
scripts/discord_bot/bot.py Bot 本体(リアクション/コメント監視)
.github/workflows/glossary-research.yml 用語調査ワークフロー
scripts/glossary/research_term.py Gemini API 調査スクリプト
scripts/glossary/notify_discord.py Discord 通知スクリプト
docs/glossary/ 調査結果の保存先
docs/glossary/README.md 用語調査システムのマニュアル