为什么需要这个#
CI/CD(持续集成/持续交付)是自动检查和发布代码的实践。想象工厂的流水线:每次你提交更改时,检查都会自动运行。
GitHub Actions 是 GitHub 内置的自动化系统。借助 Claude Code GitHub Actions,你可以:
- 🤖 自动审查 Pull Request(PR)
- 🏷️ 按类别分类(分诊)issues
- 💻 根据任务描述创建 PR
- 📝 通过
@claude评论生成代码
只需在 issue 或 PR 的评论中写 @claude——Claude 就会开始工作!
工作原理#
你在 PR 中写 @claude → GitHub Actions 启动 Claude Code →
Claude 分析代码 → Claude 留下评论或创建更改分步设置#
第1步:通过 Claude Code 安装(快速方式)#
在终端中打开 Claude Code 并执行:
/install-github-app此命令将引导你完成整个设置过程。
第2步:手动设置#
如果自动安装不起作用:
2.1. 安装 GitHub App#
前往 github.com/apps/claude 并为你的仓库安装应用。
应用需要以下权限:
- Contents — 读写(用于修改文件)
- Issues — 读写(用于回复 issues)
- Pull requests — 读写(用于创建 PR)
2.2. 添加 API 密钥#
前往仓库设置 → Secrets and variables → Actions → New repository secret。
创建名为 ANTHROPIC_API_KEY 的密钥,粘贴你的 Anthropic API 密钥。
2.3. 创建 workflow 文件#
在你的仓库中创建文件 .github/workflows/claude.yml:
name: Claude Code
on:
# 在 issues 和 PR 评论时触发
issue_comment:
types: [created]
# 在 PR 打开和 PR review 时触发
pull_request_review:
types: [submitted]
# 在 issues 打开或编辑时触发
issues:
types: [opened, edited]
jobs:
claude:
# 仅在提及 @claude 时运行
if: |
contains(github.event.comment.body, '@claude') ||
contains(github.event.review.body, '@claude') ||
contains(github.event.issue.body, '@claude')
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Run Claude Code
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}第3步:验证是否工作#
- 在仓库中创建一个新 issue
- 在其中写:
@claude 告诉我这个项目是做什么的 - 等待——Claude 会分析代码并以评论形式回复
使用示例#
自动 PR 审查#
在 PR 评论中写:
@claude 检查这个 PR 是否有错误和安全问题根据描述创建代码#
创建包含以下文本的 issue:
@claude 创建一个邮箱验证函数并添加测试。
创建一个包含更改的 PR。Claude 将创建代码、测试并打开 PR。
Issues 分诊#
@claude 分析这个错误报告并提出修复计划。
确定优先级并分配标签。高级设置#
限制工具#
你可以限制 Claude 可以使用的工具:
- name: Run Claude Code
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
claude_args: "--allowedTools Read,Edit,Bash"添加指令#
- name: Run Claude Code
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
claude_args: "--append-system-prompt '始终用中文写评论'"限制步骤数#
- name: Run Claude Code
uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
claude_args: "--max-turns 10"CLAUDE.md 文件#
Claude Code 会自动读取仓库根目录中的 CLAUDE.md 文件。使用它为 Claude 提供项目指令:
# CLAUDE.md
## 项目规则
- 使用 TypeScript 编写代码
- 每个函数必须有测试
- 提交信息使用 Conventional Commits 格式
- 注释使用中文
## 项目结构
- src/ — 源代码
- tests/ — 测试
- docs/ — 文档安全性#
- ✅ 你的代码保留在 GitHub 服务器上——不会发送到其他地方
- ✅ API 密钥存储在 GitHub 加密的 secrets 中
- ✅ Claude 使用你在
permissions中指定的相同权限工作 - ⚠️ 谨慎使用
contents: write——这允许 Claude 修改文件
课程总结#
- GitHub Actions 允许你在仓库中自动化 Claude Code 的工作
- 设置只需3个步骤:GitHub App、API 密钥、workflow 文件
- Claude 响应 issues 和 PR 中的
@claude提及 CLAUDE.md文件为项目中的 Claude 设置工作规则- 可以限制工具、步骤数和添加指令
- 代码保留在 GitHub 服务器上——安全性得到保障