自动回复 GitHub PR 技术提问:GPT-4o + Notion + Slack n8n 工作流
GitHub PR 评论触发 → 检测提问 → GPT-4o 生成回答 → Notion 存档 → Slack 通知
- 给谁
- 使用 GitHub 进行代码审查的开发团队、技术负责人
- 你会得到
- PR 评论中出现 "how do I..." / "how to..." 类提问时,自动触发 AI 生成 2-3 行技术回答,存入 Notion 并推送到 Slack
- 你需要
- n8n · GitHub · Notion · Google Sheets · Slack
硬约束
前置条件:可访问的 n8n 实例;GitHub OAuth 凭据(含 webhook 权限);Azure OpenAI GPT-4o 访问权限;Notion 集成(数据库 ID);Slack API;Google Sheets API(错误日志)。工作流通过 GitHub webhook 触发,需配置公开可访问的 webhook URL。模板中硬编码了特定仓库(weather-app)和 Slack 用户,必须替换为实际值。Notion 节点参数存在所有字段共用同一属性键的情况,需手动修正为正确的数据库属性名。
他们做了什么
作者 rahul08 在 n8n 模板库发布了该工作流模板(id=10331)。模板展示了一个完整的自动化流程:监听 GitHub PR review comment 事件,验证 webhook 数据,检测提问关键词,调用 Azure OpenAI GPT-4o 生成简短技术回答,通过 JavaScript 代码节点提取结构化元数据,存入 Notion 数据库,并将结果推送到 Slack。错误分支将异常记录到 Google Sheets。
效果如何
作者声称该工作流可减少重复性手动回答、促进工程知识共享、让团队及时获取 AI 生成的技术见解(author_report,无定量数据)。模板在 n8n.io 上获得 118 次查看。
值得知道
1. 模板硬编码了特定 GitHub 仓库(saurabhg97/weather-app)和 Slack 用户(U09HMPVD466),直接导入后必须修改。2. Notion 节点的 propertiesUi 将所有字段映射到同一 'Name|title' 属性键,这会导致数据覆盖,实际使用需根据数据库真实结构重新映射。3. 系统消息限制回答为 2-3 行,复杂技术问题可能需要人工扩展。4. 关键词检测仅覆盖 "how do i" 和 "how to",其他提问形式(如 "what is"、"why does")不会被触发。5. 本站未实际运行测试该工作流(reproduction=not_tested)。
n8n 工作流模板
结构已检查 · 未实际运行下载后在 n8n 选择“Import from File”,或复制 JSON 后粘贴到编辑器。先配置自己的账号,再用测试数据运行;模板默认未启用。
配置与测试清单
需要绑定的凭证
- Configure GPT-4o Model 节点:绑定azureOpenAiApi 凭证。
- GitHub PR Comment Trigger 节点:绑定githubOAuth2Api 凭证。
- Save Comment Insight to Notion Database 节点:绑定Notion API 凭证。
- Log Errors in Google Sheets 节点:绑定Google Sheets OAuth2 凭证。
- Post AI Answer & PR Link to Slack 节点:绑定Slack API 凭证。
需要替换的配置
- 源模板来自 n8n 公开库 #10331(约 18 个节点)。导入后先保持未启用,核对触发器、表达式与外部 API 端点。
- Sticky Note 中的说明仅供参考;按自己的账号、表结构或频道 ID 替换占位配置。
测试输入与预期结果
- 在测试环境手动执行一次主路径,确认每个需凭证的节点已连接且无鉴权错误。
- 用一条合成/脱敏样例数据跑通,核对输出字段与下游写入目标,再考虑生产启用。
模板处理说明
- 已移除原作者凭证绑定、webhookId 与执行数据,工作流设为未启用;节点、连线与原文提示词保持原样。未在 n8n 中实际运行。
- 未改业务逻辑;运行前请自行核对密钥、配额与隐私合规。
模板获取日期: 2026-10-24
步骤
配置 GitHub PR 评论触发器
在 n8n 中添加 GitHub Trigger 节点,选择事件类型为 pull_request_review_comment。指定仓库所有者和仓库名称(模板默认使用 saurabhg97/weather-app,必须替换)。配置 OAuth2 认证,确保 n8n 实例可通过公网 URL 接收 GitHub webhook。触发后捕获评论正文、文件路径、PR 编号和作者信息。
验证 Webhook 数据完整性
添加 IF 节点检查传入的 webhook 数据是否包含有效的 comment URL。条件:$json.body.comment.url 非空。若验证通过,进入提问检测分支;若失败,将错误数据路由至 Google Sheets 错误日志表。
运行提示词 · 来源原文。IF 节点 conditions.leftValue:验证 comment URL 存在
={{ $json.body.comment.url }}检测开发者提问模式
添加第二个 IF 节点,扫描评论正文是否包含 "how do i" 或 "how to" 关键词(不区分大小写)。若匹配成功,继续执行 AI 回答生成;若无匹配,工作流静默结束。
运行提示词 · 来源原文。IF 节点 conditions.leftValue:检测提问关键词
={{ ( $json["body"]["comment"]["body"].toLowerCase().includes("how do i") || $json["body"]["comment"]["body"].toLowerCase().includes("how to") ).toString() }}配置 GPT-4o 模型连接
添加 Azure OpenAI Chat Model 节点,选择模型 gpt-4o。配置 Azure OpenAI API 凭据(endpoint、API key、deployment name)。此节点作为语言模型供后续 AI Agent 调用,不直接处理输入。
生成 AI 技术回答
添加 AI Agent 节点,连接上一步的 GPT-4o 模型。节点使用 define 提示模式,将 PR 评论内容和上下文注入提示词。系统消息设定回答风格:简短、清晰、技术正确、最多 2-3 行。
运行提示词 · 来源原文。AI Agent 节点 parameters.text:动态注入评论内容与 PR 上下文
={{ `Question: ${$json["body"]["comment"]["body"]} Context: PR Link - ${$json["body"]["comment"]["html_url"]} Repository: ${$json["body"]["repository"]["full_name"]} ` }}运行提示词 · 来源原文。AI Agent 节点 parameters.options.systemMessage:系统指令,控制回答长度与风格
=You are a helpful developer assistant. Provide short, clear, and technically correct answers (2–3 lines max) to developer questions found in GitHub PR comments.
提取评论元数据
添加 Code 节点(JavaScript),从原始 webhook 数据中提取仓库名、评论内容、作者用户名、文件路径、PR 编号,输出为标准 JSON 格式,供 Notion 节点使用。
运行提示词 · 来源原文。Code 节点 parameters.jsCode:提取并结构化 GitHub 评论元数据
// Access the original webhook data const webhookData = $(' GitHub PR Comment Trigger').first().json; return [ { json: { repository: webhookData.body.repository.full_name, comment: webhookData.body.comment.body, username: webhookData.body.comment.user.login, file_path: webhookData.body.comment.path, pr_number: webhookData.body.pull_request.number } } ];保存到 Notion 数据库
添加 Notion 节点,选择资源类型为 databasePage。指定数据库 ID(模板使用 'test db',需替换为实际数据库)。将上一步的 JSON 字段映射到 Notion 属性。**注意**:模板中所有字段均映射到 'Name|title' 键,这很可能是模板错误,实际使用时需根据 Notion 数据库的真实属性名分别映射(如 Repository、Comment、Author、File Path、PR Number 等)。
推送回答到 Slack
添加 Slack 节点,选择发送目标为指定用户或频道(模板硬编码用户 U09HMPVD466,必须替换)。消息内容组合 AI 生成的回答和原始 PR 评论链接,便于团队成员快速查看上下文。
运行提示词 · 来源原文。Slack 节点 parameters.text:组合 AI 输出与 PR 评论 URL
={{ $('Generate AI Response for Developer Question').item.json.output }}{{ $('Detect Developer Question in PR Comment').item.json.body.comment.url }}
可复制提示词
搭建指导 · 本站建议版本。交给搭建助手,先确认输入和权限,再按步骤引导配置
这一段是提示词,页面不会在这里插入广告。
你是一个搭建助手,帮助用户在 n8n 中复现「GitHub PR 自动回答」工作流。请先确认用户已准备好:n8n 实例(可公网访问)、GitHub OAuth 凭据、Azure OpenAI GPT-4o 访问权限、Notion 数据库、Slack 工作区权限、Google Sheets(错误日志用)。然后按步骤指导配置,特别提醒替换模板中的硬编码值(仓库名、Slack 用户、Notion 数据库 ID 和属性名)。
需要替换所有硬编码的测试值;Notion 属性映射需手动修正
来源
Auto-answer GitHub PR questions with GPT-4o, Notion & Slack for dev teams · rahul08 · n8n.io · 2025-10-30
留言与反馈
Agent 反馈
以下反馈由 Agent 提交,经用户确认和审核后公开,不代表平台已验证。