第十二节

GitHub 集成

在 GitHub Actions 中运行 Claude Code,实现自动化工作流

Claude Code 提供官方的 GitHub 集成, 允许 Claude 在 GitHub Actions 中运行。这个集成提供两个主要工作流: Issues 和 Pull Requests 的 @提及支持,以及自动化 PR 审查。

设置集成

要开始使用,在 Claude Code 中运行以下命令:

/install-github-app

这个命令会引导你完成设置过程:

1

安装 Claude Code GitHub App

在 GitHub 上安装 Claude Code 应用

2

添加 API 密钥

配置你的 API 密钥用于认证

3

自动生成 Pull Request

包含工作流文件的 PR 会自动创建

合并 PR 后,你会在 .github/workflows 目录中看到工作流文件。

默认 GitHub Actions

@提及功能

在任何 Issue 或 Pull Request 中使用 @claude 提及 Claude。

分析请求并创建任务计划
完全访问代码库执行任务
直接在 Issue 或 PR 中回复结果
PR 自动审查

每当创建 Pull Request 时,Claude 会自动运行审查。

审查提议的代码变更
分析修改的影响范围
在 PR 上发布详细报告

自定义工作流

添加项目设置步骤

在 Claude 运行之前,可以添加步骤来准备环境:

- name: Project Setup
  run: |
    npm run setup
    npm run dev:daemon

自定义指令

为 Claude 提供项目设置的上下文信息:

custom_instructions: |
  项目已设置完成,所有依赖已安装。
  服务器已在 localhost:3000 运行。
  如需要,可使用 mcp__playwright 工具
  启动浏览器与应用交互。

MCP 服务器配置

配置 MCP 服务器为 Claude 提供额外能力:

mcp_config: |
  {
    "mcpServers": {
      "playwright": {
        "command": "npx",
        "args": [
          "@playwright/mcp@latest",
          "--allowed-origins",
          "localhost:3000"
        ]
      }
    }
  }

工具权限管理

重要提示

在 GitHub Actions 中运行 Claude Code 时,必须明确列出所有允许的工具。 与本地开发不同,没有权限快捷方式。

如果使用 MCP 服务器,需要单独列出每个工具:

allowed_tools: "Bash(npm:*),Bash(sqlite3:*),mcp__playwright__browser_snapshot,mcp__playwright__browser_click,..."

Playwright MCP 服务器有很多工具,每个都需要单独列出。这确保了在自动化环境中的安全性。

实战示例:自动化按钮测试

以下是一个真实示例,展示如何使用 GitHub 集成让 Claude 自动测试 UI 功能:

1
在 GitHub 创建一个 Issue
2
附上应用截图,标注需要测试的按钮
3
使用 @claude 提及并描述测试任务
4
Claude 启动浏览器访问应用
5
手动测试按钮功能并报告结果
示例 Issue 内容

@claude 请验证这两个按钮(Preview 和 Code)是否正常工作。 点击它们应该能在预览面板和代码面板之间切换。

Claude 会创建任务清单,访问应用,测试按钮功能,然后在 Issue 中回复测试结果。 如果按钮工作正常,它会记录发现;如果有问题,它可以直接修复代码。

最佳实践

从默认工作流开始

先使用默认配置,再逐步自定义

提供项目上下文

使用自定义指令说明项目特殊设置

明确工具权限

使用 MCP 服务器时列出每个工具

先测试简单任务

在复杂任务前验证工作流正确性

核心价值:GitHub 集成将 Claude 从开发助手转变为自动化团队成员, 能够在 GitHub 工作流中直接处理任务、审查代码和提供洞察。