为什么需要这个#

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 variablesActionsNew 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步:验证是否工作#

  1. 在仓库中创建一个新 issue
  2. 在其中写:@claude 告诉我这个项目是做什么的
  3. 等待——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 服务器上——安全性得到保障