🧠
GitHub × Dify コードレビューAI 導入マニュアル(完全詳細ガイド)
Dify × GitHub 自動コードレビュー導入マニュアル(完全版)
🎯 はじめに:目的と全体構成の理解
このステージでは、DifyとGitHubを連携させる自動コードレビュープロセス全体の構造と目的を明確にします。
✅ ゴール
- GitHub上のコード変更を自動で検出し、DifyのAIエージェントでレビューを実行する
- レビュー結果をGitHub PRコメントやSlackに通知し、対話的にレビューを継続可能にする
🧱 システム構成概要
コード変更(GitHub Push)
↓
GitHub Actions
↓
Dify Agent または Workflow へ API 呼び出し
↓
レビュー結果を GitHub PRコメント または Slack へ通知
↓
ユーザーが Dify 上でチャット形式のフォローアップ
💡 連携のユースケース
機能 | 利点 |
---|---|
自動コードレビュー | 手動作業の軽減と品質の標準化 |
GitHub PRコメント出力 | チームレビューへのスムーズな統合 |
Slack通知 | チームメンバーへの即時共有 |
Difyチャットでの継続質問 | AIと対話形式での深堀り学習や指摘の理解支援 |
ワークフローによる多段階処理 | 要約→問題点→改善提案など高度なレビュー構成も可能 |
🛠 ステージ1:Difyの初期設定
このステージでは、コードレビューに使うDifyのエージェントやワークフローを作成し、GitHubからAPI経由で呼び出すための準備を整えます。
1-1. アカウント作成とログイン
- Dify公式サイト にアクセスし、アカウントを作成します。
- 作成後、ダッシュボードにログインします。
1-2. エージェントの作成(単一ステップのレビュー用途)
- 左メニュー「Agents」から「新規作成」
- モード:
Chat
またはAPI
- プロンプト入力(例):
あなたはプロのコードレビュアーです。渡されたコードに対して以下の観点でレビューを行ってください:
- バグの可能性
- コーディング規約の違反
- セキュリティ上の懸念
- 可読性や保守性の改善点
- 入力スキーマ(例):
{
"code": {"type": "string", "description": "対象コード"},
"filename": {"type": "string", "description": "ファイル名"}
}
- 作成後に表示されるAgent IDをメモしておきます。
1-3. ワークフローの作成(多段階ステップが必要な場合)
-
左メニュー「Workflows」から「新規作成」
-
Step構成(例):
- Step1:コード要約
- Step2:問題点の洗い出し
- Step3:改善提案
-
入力スキーマはエージェントと同様
-
APIモードを有効化し、生成されたWorkflow IDを控えます
1-4. APIキーの取得
- 左メニュー「API Keys」から「新規作成」
- 任意の名前を付けてキーを生成
- 生成されたAPIキーは後でGitHubに登録するため、必ず控えておきましょう
⚙️ ステージ2:GitHub Actionsの構築
このステージでは、GitHubのリポジトリ上にあるコードが変更された際、自動的にDifyに送信してレビューを行うためのワークフローを作成します。
2-1. GitHub Secretsの設定
GitHubリポジトリの Settings > Secrets and variables > Actions
に以下を追加してください:
名前 | 用途 |
---|---|
DIFY_API_KEY |
Difyで発行したAPIキー |
DIFY_AGENT_ID |
作成したAgentのID(Agent使用時) |
DIFY_WORKFLOW_ID |
作成したWorkflowのID(Workflow使用時) |
2-2. ワークフロー定義ファイルの作成
.github/workflows/dify-review.yml
を作成し、以下のように記述します。
name: Dify Review
on:
push:
paths:
- '**.js'
- '**.ts'
- '**.py'
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Detect changed files
id: files
run: |
echo "files=$(git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | grep -E '\\.(js|ts|py)$' | tr '\n' ' ')" >> $GITHUB_OUTPUT
- name: Send code to Dify Agent
env:
DIFY_API_KEY: ${{ secrets.DIFY_API_KEY }}
AGENT_ID: ${{ secrets.DIFY_AGENT_ID }}
run: |
for file in ${{ steps.files.outputs.files }}; do
echo "Reviewing $file..."
content=$(cat "$file" | jq -Rs .)
curl -X POST https://api.dify.ai/v1/chat-messages \
-H "Authorization: Bearer $DIFY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputs": {"code": '"$content"', "filename": "'$file'"},
"response_mode": "blocking",
"user": "github-bot",
"agent_id": "'$AGENT_ID'"
}'
done
💬 ステージ3:Slack通知とDifyチャット連携
このステージでは、レビュー結果をSlackで即座に通知したり、Difyチャットで継続的な対話を可能にする機能を実装します。
3-1. Slack Webhookの設定
- Slack APIのApp管理画面 にアクセス
- 新規アプリを作成
- 「Incoming Webhooks」を有効化
- 通知したいチャンネルを指定してWebhook URLを取得
- GitHub Secretsに
SLACK_WEBHOOK_URL
として追加
3-2. GitHub ActionsにSlack通知を追加
- name: Notify to Slack
if: always()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
TEXT="Difyによるコードレビューが完了しました。PRをご確認ください。"
curl -X POST -H 'Content-type: application/json' \
--data "{\"text\": \"$TEXT\"}" \
$SLACK_WEBHOOK_URL
3-3. Difyチャット連携
- Dify Agent画面で「Share」からチャットリンクを発行し、PRコメントやSlack通知に貼り付け
- NotionやWiki、社内ポータルに埋め込む活用も可能
🧾 ステージ4:レビュー結果のフォーマット最適化
4-1. PRコメント用テンプレート例
### 🤖 自動レビュー by Dify
📄 ファイル: `src/example.js`
⚠️ 指摘事項:
- 不要な変数 `temp` が定義されています
- 条件分岐が複雑で可読性に課題があります
💡 改善提案:
```js
// Before
let temp = result;
return temp;
// After
return result;
### 4-2. Slack通知用テンプレート例
```json
{
"text": "🚨 *Difyコードレビュー完了*\n\n*ファイル:* `src/app.py`\n*指摘数:* 2件\n🔗 <https://github.com/org/repo/pull/123|PRを確認する>\n🧠 <https://app.dify.ai/chat/AGENT_ID?conversation_id=xxxxx|Difyと対話する>"
}
4-3. Markdown整形の自動化(Node.js例)
function formatReview({ filename, issues, suggestion }) {
return `### 🤖 Difyレビュー\n\n📄 ファイル: \`${filename}\`\n\n${issues.map(i => `- ⚠️ ${i}`).join('\n')}\n\n💡 提案:\n\\`\\`\\`js\n${suggestion}\n\\`\\`\\``;
}
🚀 ステージ5:実践的な運用例とベストプラクティス
5-1. 小規模開発チームでの導入パターン
- Dify Agentで単純レビュー
- 通知先:GitHub PR+Slack
- 必要に応じてDifyチャットへ
5-2. 中〜大規模チームの運用パターン
- Dify Workflowによる多段階レビュー
- 組織共通プロンプト・通知先チャンネル化
- 共有チャットリンク運用でレビュー知見の可視化
5-3. ベストプラクティス集
項目 | 内容 |
---|---|
プロンプト設計 | 観点を5〜7に絞り具体例を添える |
セキュリティ管理 | APIキー/WebhookはGitHub Secretsで管理 |
ステージング環境検証 | ForkやDraft PRで試験運用を推奨 |
効果測定 | 所要時間や指摘数、質の変化をトラッキング |
導入ロードマップ例
- PoC導入→2.機能拡張→3.全社展開
🚑 ステージ6:トラブルシューティングとFAQ
6-1. トラブル事例と対処法
- Actionsエラー:Secrets/ファイル/JSON/認証エラーの確認
- PRコメント非表示:Token権限/スクリプト/パス/バージョン確認
- Dify実行不可:APIモード/スキーマ一致/エラーログ確認
6-2. FAQ(よくある質問)
- Q. レビュー精度は?→一般的な検出は高精度、業務特化はプロンプト補強で
- Q. 継続会話は?→conversation_id入りURLで深掘り
- Q. 複数ファイル対応?→ループorzipで送信。サイズ/数に注意
- Q. Slack連携必須?→任意だが可視化・通知活性化には有効
🌱 ステージ7:今後の展望と拡張
7-1. 技術進化と連携強化
- 複数AIモデル選択、LinterやCIと連携、基準ルール自動アップデート
7-2. 組織展開アイデア
- 前処理化、ナレッジ化、共通テンプレ整備、ダッシュボード導入
7-3. 今後のロードマップ
フェーズ | 予定内容 | 目的 |
---|---|---|
Q3 2024 | カスタムルールのGUI編集機能 | 非エンジニアでもレビュー方針を設定可能に |
Q4 2024 | 分析レポートの自動生成 | 定期的な品質分析とチーム全体へのフィードバック |
Q1 2025 | Dify×他AIツールとの連携 | AI同士の役割分担による開発支援の最適化 |
📘 まとめと次のステップ
🔁 振り返り
ステージ | 要点 |
---|---|
0. 目的と構成 | GitHub→Dify→通知・連携の全体像 |
1. Dify設定 | Agent/Workflow準備 |
2. Actions | 差分検知・API自動化 |
3. Slack連携 | 通知+チャット連携 |
4. レビュー整形 | Markdownによる可読性・行動性 |
5. ベストプラクティス | 品質・コスト・運用最適化 |
6. トラブル対策 | 実務FAQとその対策 |
7. 今後の展望 | 組織的導入・自律成長へ |
✅ 導入チェックリスト
- Dify登録・Agent/Workflow作成
- GitHub Secrets設定
- Actionsスクリプト導入・自動化確認
- Slack/チャットUI連携
- テンプレート整形・可読性確保
- ベストプラクティス・ルール共有
🚀 次のアクション
- 小規模PoC→2.全社展開→3.効果測定・KPI化→4.フィードバックループ確立
🎯 最後に
コードレビューは品質管理だけでなく、学習と成長の核です。DifyなどAIは“協働者”となりうる──手間を減らし、気づきや改善を促進し、未来のレビュー文化を今日から一歩ずつ作っていきましょう。
関連記事
AIとスパイラルダイナミクスで再設計するレビュー文化
著者プロフィール
- 名前:山本治信
- 職種:AI Productivity Engineer
- 専門:フルスタックエンジニア
- 経歴:
- CTO、複数特許取得、技術記事執筆
- ソーシャルメディア:
Discussion