Claude Code + GitHub:从提 Issue 到合并 PR,全自动开发流水线这样搭

想象这样一个场景。
有人在你的 GitHub 仓库里提了一个 Bug Issue。你还没打开电脑,AI 已经读完了 Issue、分析了代码、创建了分支、写好了修复、跑通了测试、提了 PR、还自动做完了 Code Review。
你打开电脑,看到的是一个等待合并的 PR。点一下 Merge,完事。
这不是科幻。这是 2026 年,Claude Code + GitHub Actions 已经可以实现的全自动开发流水线。
今天这篇文章,我来手把手拆解这条流水线的每个环节,给你可以直接复制粘贴的配置文件。
整体架构:一条 AI 驱动的开发流水线
先看全貌。这条流水线有 5 个自动化环节,覆盖了从 Issue 到合并的完整生命周期:
1 | Issue 提交 → AI 自动修复并提 PR |
每个环节都有对应的 GitHub Actions Workflow 或 Claude Code Hook。下面逐一拆解。
第一步:安装 Claude GitHub App
所有自动化的基础,是让 Claude 能访问你的仓库。
- 打开 github.com/apps/claude,安装 Claude GitHub App
- 选择要授权的仓库
- 在仓库的 Settings → Secrets 中添加
ANTHROPIC_API_KEY
安装完成后,你就可以在 Issue 和 PR 的评论里 @claude 来触发 AI 操作了。
第二步:Issue 自动转 PR
这是整条流水线最惊艳的环节。有人提了 Issue,Claude 自动读取、分析、修复、提 PR。
创建 .github/workflows/issue-to-pr.yml:
1 | name: Issue to PR |
工作流程:
- 有人提 Issue
- 你(或机器人)给 Issue 打上
claude-fix标签 - Claude 自动创建分支、写代码、跑测试、提交 PR
一位工程师在 Medium 上分享了实际体验:
“一个小修复、小重构、小功能——我们只需要在 Issue 里 @claude 加一句清晰的描述。Claude 自动拉分支、改代码、跑测试、提 PR。全程不需要任何开发者 pull 代码或切换分支。”
第三步:PR 自动 Code Review
每个 PR 都应该被认真审查。但现实是,人类审查者时间有限,很多 PR 只是被快速浏览一下就 Approve 了。
Claude Code 的自动 Review 可以解决这个问题。
创建 .github/workflows/claude-review.yml:
1 | name: Claude Code Review |
关键细节:allowed_tools 的安全限制。
注意 allowed_tools 这行。它把 Claude 的权限限制在”读取 diff + 发评论”,不允许执行任意 Shell 命令、写文件或访问 Secrets。这是安全的关键防线。
Anthropic 官方博客公布了一个数据:Code Review 在内部使用中,小于 50 行的 PR,31% 被发现有问题,平均每个 PR 发现 0.5 个问题。而**误报率不到 1%**。
更高级的方案是 Anthropic 官方的 Code Review 插件,它会派出 5 个专门的 AI 代理并行审查,每个发现都有 0-100 的置信度评分。不过这是付费功能。上面的 GitHub Action 方案是免费开源的,对大多数团队够用。
一个真实的成本参考:有开发者分享,使用 Opus 4.6 做了 200+ 个 PR 的自动审查,平均每个 PR 只花 $0.04,两个月总共 $19.50。
第四步:自动生成 PR 描述
很多 PR 的描述写着”fixed stuff”或者”update code”。这对审查者来说毫无用处。
用 Claude Code 自动生成 PR 描述,只需要在本地提 PR 时跑一行命令:
1 | git diff main...HEAD | claude -p "Write a PR description for these changes. Include: |
或者把这个集成到 GitHub Actions 中,在 PR 创建时自动生成描述。
第五步:本地 Hooks——提交前的最后防线
GitHub Actions 在远程运行,但有些检查越早越好。Claude Code 的 Hooks 系统让你在本地就能拦截问题。
Hooks 的本质是生命周期事件监听器。你配置一次,它就会在 Claude Code 的特定动作前后自动运行。
在 .claude/settings.json 中配置:
1 | { |
PostToolUse Hook:每次 Claude 编辑文件后,自动运行测试。如果测试失败,Claude 能看到结果并自动修复。
PreToolUse Hook:在 Claude 执行 Shell 命令前进行拦截,可以阻止危险操作。
一位用了 Claude Code 六个月的开发者总结得很好:
“你手动检查的每一件事,都可以编码成一个 Hook。每编码一个 Hook,就少记一件事。”
第六步:CLAUDE.md——流水线的大脑
所有自动化的质量,取决于 Claude 对你项目的理解程度。而 CLAUDE.md 就是那份”理解说明书”。
在项目根目录创建 CLAUDE.md:
1 | # Project Context |
Claude Code 在每次会话开始时自动读取这个文件。它是 Claude 的”入职文档”——项目结构、编码规范、测试策略、CI/CD 规则,全在这里。
子目录也可以有自己的 CLAUDE.md。 比如 api/CLAUDE.md 定义 Express 中间件模式,web/CLAUDE.md 描述 React 组件结构。Claude 会根据当前操作的文件路径自动加载对应的上下文。
安全注意事项
把 AI 放进 CI/CD 流水线,安全必须放在第一位。
1. 严格限制权限
allowed_tools 是最重要的安全配置。只给 Claude 它需要的最小权限。Review 任务只需要读 diff 和发评论,不需要写文件或跑命令。
2. 不要在 CI 中使用 --dangerously-skip-permissions
这个 flag 跳过所有权限检查。在本地开发时有人会用它图方便,但绝对不要在 CI/CD 中使用。
3. 警惕 Prompt 注入
如果你的 Workflow 会读取 Issue 标题或 PR 描述作为 Prompt 的一部分,攻击者可以通过精心构造的 Issue 标题注入恶意指令。Cline 的 500 万用户事件就是这样发生的。
防范方法:
- 限制
allowed_tools,不给 Bash 执行权限 - 不要把用户输入直接插入 Prompt
- 设置
--max-turns限制执行轮数(5-10 轮足够大多数 Review)
4. CI 触发链保护
默认情况下,GitHub App 创建的 commit 不会触发新的 Actions。这是一个重要的安全特性——防止 AI 触发无限循环。如果你确实需要 CI 在 Claude 的 commit 上运行,使用 actions/create-github-app-token 来配置专门的触发权限。
实际效果如何?
一个来自企业级团队的真实反馈(Go + React + TypeScript + Terraform 技术栈):
- Code Review 堆积问题解决了:每个 PR 都能在提交后几分钟内得到结构化的反馈
- CI 失败调试时间大幅减少:Claude 读 CI 日志、定位根因、直接修复或给出清晰解释
- 新人上手速度加快:新成员可以直接在 Issue 或 PR 里问 Claude 问题,得到基于代码库上下文的回答
- 开发者不用离开 GitHub:不需要切换到另一个 AI 工具,在 PR 评论里 @claude 就行
这条流水线的核心思想是:Hooks 在提交前拦截问题,Actions 在合并前拦截问题。双层防线,大幅减少到达生产环境的 Bug。
从哪开始?
如果你想尝试,建议按这个顺序:
- 先搭 PR 自动 Review——价值最大、配置最简单、风险最低
- 再加本地 Hooks——测试自动运行、格式自动检查
- 然后加 Issue 转 PR——从简单的 Bug 修复开始
- 最后加 Release Notes 和 Docs 自动更新——锦上添花
每一步都可以独立运行,不需要一次全搭完。
记住一句话:自动化的质量取决于 Prompt 的质量。 你给 Claude 的指令越清晰、CLAUDE.md 写得越详细,流水线的输出就越靠谱。
你的团队有在用 AI 做自动化 Code Review 吗?你们的 CI/CD 流水线里加了哪些 AI 环节?欢迎在评论区分享你的实践经验。