type
status
date
slug
summary
tags
category
icon
password
现在,近期 AI 技术的发展真是令人瞩目。特别是 AI 编程助手,它们变得非常智能,具有彻底改变我们开发方式的潜力。
"我们应该能够使用 AI 进行更高效、更高质量的开发!"
怀着这样的信念,我们一直在探索将 AI 集成到团队开发流程中的方法。现在,我们发现了一个将备受关注的 Claude Code 与 GitHub Actions 链接的自动化系统,它为我们的团队带来了超出想象的积极变化。我想与大家分享我们的发现。
希望这篇文章能为改善你们团队的开发流程提供一些启示。
我们团队面临的两个"错失机会"
我们的团队面临着许多开发环境中都存在的类似挑战。
挑战 1:依赖个人的代码审查和心理障碍
随着 AI 编程工具准确性的提高,个人编写的代码质量确实在上升。然而,只要我们作为团队进行开发,代码审查仍然是必不可少的。
但是,你们是否遇到过这些"错失机会"?
- 在等待审查时开发停滞不前
- 反馈要点因审查者而异
- 出现心理障碍,比如"这个人的审查很严格,我不想提交 pull request..."
即使我们推荐使用 AI,但在现实中强迫每个人都这样做是很困难的。这就是为什么我们认为,如果我们有一个"无论谁提交 pull request 都会自动进行公平 AI 审查的系统",我们就能解决这些问题。
我们还预期这个系统会带来次要好处:让个人技能变得可见。这应该会带来健康的竞争意识和技能提升的动力,比如"A 同事的 pull request 总是很少收到 AI 的建议,太厉害了!"或者"下次我要争取零建议!"
挑战 2:高成本且往往流于形式的漏洞扫描
安全性是支撑产品可靠性的最关键因素之一。然而,传统的漏洞扫描以专家的手动检查为中心,这不可避免地变得昂贵。结果,它不能频繁执行,往往限制在发布前的检查或一年只进行几次。
然而,最近的 AI 可以理解极其广泛的上下文。它读取整个源代码并检测人类可能忽略的漏洞模式的能力有了显著提高。
所以,我们想,"我们不能利用 AI 对整个源代码进行常规的、低成本的漏洞扫描吗?"这将允许我们在开发过程的早期发现安全风险并减少返工。
使用 Claude Code GitHub Actions 实现的成果
我们构建的系统利用开源的"Claude Code Action"来解决这些挑战。具体来说,它实现了以下两件事:
针对 Pull Request 的 AI 驱动自动代码审查
- 每当创建或更新 pull request 时,AI (Claude) 会自动发布审查评论
每月源代码漏洞扫描与 Slack 通知
- 每月一次,AI 对整个源代码执行漏洞扫描,自动创建总结结果的 Issue,然后发送通知到 Slack
通过这种设置,我们旨在自动且持续地实现代码质量标准化和安全级别的提升。
基础背景知识
对于那些想"这听起来很有用,但 Claude 和 GitHub Actions 到底是什么?"的人,这里有一个简要说明。
什么是 Claude Code?
Claude 是由 Anthropic 开发的高度先进的 AI。它特别擅长理解和生成长文本,以及编程。你可以将"Claude Code"视为专门作为编程助手的 Claude 版本。它可以成为开发者的可靠伙伴,帮助进行代码审查、重构和指出漏洞。
什么是 GitHub Actions?
GitHub Actions 是内置在 GitHub 中的 CI/CD(持续集成/持续部署)工具。它允许你自动化一系列任务,如测试、构建和部署,由 GitHub 上的事件(如 git push 或创建 pull request)触发。它真的是消除繁琐手动开发工作的幕后英雄。
Claude Code GitHub Actions 的优点是什么?
这个工具的基本吸引力在于它的简单性:你只需在 GitHub 上提及"@claude"就可以交互式地请求代码审查和修复。
在这篇文章中,我们将这个功能应用于自动执行"@claude"提及本身,由创建 pull request 等事件触发。
目标是构建一个强大的"系统",其中 AI 检查总是在开发者甚至不需要考虑的情况下执行。
非常重要的"CLAUDE.md"是什么?
这是我们系统的"核心"。如果你在仓库的根目录或 .github 目录中创建一个名为 CLAUDE.md 的文件,Claude 会读取该文件中编写的指令和规则,并相应地执行其审查和扫描。
例如,你可以描述自己的规则,如"我们团队的规则是用 camelCase 写变量"或"在安全审查中,请关注 SQL 注入和跨站脚本攻击。"这个 CLAUDE.md 文件本质上是你的 AI 审查员的导师。
设置指南:让我们用两个文件实现自动化!
现在,让我们进入主题:设置方法。从这里开始会有一些代码,但不要担心,我会仔细解释每个部分。我已经让它可以复制粘贴!
只需将以下两个 YAML 文件添加到你的仓库中,自动化的魔力就会开始。
.github/workflows/claude.yml(运行 Claude 的主文件)
.github/workflows/slack-notification.yml(将漏洞扫描结果发送到 Slack 的文件)
我强烈建议同时创建 AI 的指令手册 CLAUDE.md。
准备 CLAUDE.md 和重要规则
首先,让我们创建 AI 的指令手册 CLAUDE.md。如果你在这里写下审查和漏洞扫描规则,AI 会忠实地遵循它们。
并且,为了确保我们稍后设置的 Slack 通知正常工作,请务必在漏洞扫描指南中包含以下必需的关键词。这是一个重要的约定,用于从 AI 的扫描结果中机械地确定是否发现了漏洞。(指南只是示例,所以请为每个项目自由设置。)
1. 运行 Claude 的主配置(claude.yml)
创建一个名为
.github/workflows/claude.yml 的文件并将以下内容粘贴到其中。2. Slack 通知配置(slack-notification.yml)
接下来是将漏洞扫描结果发送到 Slack 的配置。创建一个名为
.github/workflows/slack-notification.yml 的文件并粘贴以下内容。3. 设置环境变量(Secrets)
你需要将配置文件中使用的 API 密钥和其他变量注册为 GitHub 仓库中的 Secrets。你可以从仓库的 Settings > Secrets and variables > Actions 进行此操作。
- ANTHROPIC_API_KEY:你从 Anthropic 获得的 API 密钥
- USER_PAT:你的 GitHub 个人访问令牌(PAT)
- SLACK_WEBHOOK_URL:用于 Slack 通知的 Incoming Webhook URL
有关如何获取这些的说明,Zenn 上的这类文章(日语)非常有帮助。你可能想询问你的基础设施管理员或将其发布到项目频道。
【深入了解】为什么需要 USER_PAT?
这是一个相当重要的点,让我解释一下。
当 GitHub Action 在 pull request 上发布评论时,该评论归属于 github-actions 机器人。然而,出于安全原因,Claude Code Action 被设计为不响应来自机器人的提及。
因此,通过使用 USER_PAT,我们让它看起来像是人类(你)发表了评论,这反过来触发了 Claude。这是一个小技巧,但它使自动化运行顺畅。
生成 USER_PAT 时,安全最佳实践是仅授予最低必要权限。对于此设置,以下权限就足够了:
- repo(claude.yml 执行所需)
- issues:write(对 issue 进行评论和标记所需)
- pull_requests:write(对 pull request 进行评论所需)
※2025年6月更新:PAT 权限变得更加精细。检查 repo 会授予广泛的权限。如果你想更严格地设置权限,我们建议仅单独选择必要的权限,如 contents: read 和 pull-requests: write。
未来展望:你的开发流程将如何改变?
一旦这些设置完成,你的团队开发流程将发生如下转变。
场景 1:Pull Request 的自动代码审查
- 团队成员创建 pull request
- GitHub Actions 立即触发,代表你自动发布评论"@claude Please review this pull request."
- 此评论触发 Claude!它读取 CLAUDE.md 中的规则和整个源代码,然后开始审查
- 几分钟后,Claude 将审查结果作为评论发布在 pull request 上
- (如果有建议) 它提供具体的改进点。团队成员阅读它们,进行更正,然后再次推送提交。然后,自动审查再次运行以检查修复是否正确
- (如果没有建议) 你会得到积极的反馈,如"这是优秀的代码!"
- 经过人工最终检查后,它被合并!
场景 2:每月源代码漏洞扫描
- 每月第一天的上午 9:00,GitHub Actions 自动启动
- 自动创建标题为"【自动】月度漏洞扫描报告"的 issue。issue 主体包含"@claude Please run the scheduled vulnerability scan."
- 此提及触发 Claude!它开始对整个仓库的源代码进行漏洞扫描,遵循 CLAUDE.md 中的扫描规则
- 扫描完成后,Claude 将结果作为评论添加到 issue
- 检测到此评论,Slack 通知工作流被触发
- 向指定的 Slack 频道发送"漏洞扫描完成"的通知
- 团队成员看到通知,检查 issue,如果发现任何严重漏洞,他们可以立即制定响应计划
总结
怎么样?
在设置这个系统时,我个人感到非常兴奋,看到 AI 自动化能够如此大幅度地推进团队开发。我相信你们都会对最近 AI 模型的高水平上下文理解感到惊讶。
这不是关于"AI 抢夺我们的工作",而是"让 AI 成为我们最好的伙伴,这样人类可以专注于更有创造性的工作。"我坚信这是工程未来发展的方向。
如果我们不主动拥抱这种 AI 利用,我们可能会在不知不觉中被全球开发的步伐抛在后面。对于公司和个人来说,这都将是一个巨大的错失机会。
我们的团队将继续与 AI 一起成长,挑战以最快的速度向用户交付最好的产品。作为 CTO,如果这篇文章能成为你们团队迈出第一步的催化剂,没有什么比这更让我高兴的了。
最后一个小小的警告。 Anthropic 的 API 使用是按使用付费的。根据你的使用情况,它可能会变得昂贵。我建议在考虑全面实施之前,先从小规模开始,正确评估成本效益。
请与你的团队一起尝试!如果你有任何更好的想法或使用方法,请告诉我。
Happy Hacking!!🐙