Claude Code Runner Service - 通过 GitHub Webhook 自动执行 Claude Code 任务的工具。
- GitHub Webhook 集成: 监听 Issue 和 PR 评论,自动触发任务
- Git Worktree 隔离: 每个分支使用独立的 worktree,避免冲突
- 分支级锁: 同一分支同时只能执行一个任务
- 并发控制: 支持配置最大并发任务数
- 自动推送: 任务完成后自动提交并推送代码
- PR 状态同步: 在 PR 上添加评论反馈任务执行结果
- 访问 GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
- 生成新令牌,需要权限:
repo(完整仓库访问)workflow(如果需要触发 GitHub Actions)
- 进入仓库 → Settings → Webhooks → Add webhook
- 配置以下选项:
- Payload URL:
http://你的服务器IP:3456/webhook - Content type:
application/json - Events: 选择以下:
Issue commentsPull request reviewsPull request review comments
- Payload URL:
方式一: Issue 评论
@claude 修复这个bug: 当用户登录失败时没有显示错误提示
方式二: PR Review 在 PR Review 中添加任务描述
方式三: PR Review Comment 在 PR 上添加评论:
/claude 重构这个函数的命名使其更清晰
- Go 1.26+
- Git
- Claude Code CLI (
claude命令) - GitHub Token
- Anthropic API Key
make build或手动编译:
go build -o gh-claudeexport GH_TOKEN=your_github_token
export ANTHROPIC_API_KEY=your_anthropic_api_key
./gh-claude [-port=3456] [-work-dir=/tmp/claude-runner] [-max-concurrent=5]docker run -d \
--name gh-claude \
-p 3456:3456 \
-v /tmp/claude-runner:/tmp/claude-runner \
-e GH_TOKEN=your_github_token \
-e ANTHROPIC_API_KEY=your_anthropic_api_key \
gh-claude创建 /etc/systemd/system/gh-claude.service:
[Unit]
Description=gh-claude service
After=network.target
[Service]
Type=simple
User=your-user
WorkingDirectory=/path/to/gh-claude
Environment=GH_TOKEN=your_github_token
Environment=ANTHROPIC_API_KEY=your_anthropic_api_key
ExecStart=/path/to/gh-claude/gh-claude
Restart=always
[Install]
WantedBy=multi-user.target启用服务:
sudo systemctl daemon-reload
sudo systemctl enable gh-claude
sudo systemctl start gh-claude| 接口 | 方法 | 说明 |
|---|---|---|
/run |
POST | 提交新任务 |
/status |
GET | 查询任务状态 |
/queue |
GET | 查看任务队列 |
/cancel |
POST | 取消任务 |
/webhook |
POST | GitHub Webhook 接收器 |
/health |
GET | 健康检查 |
curl -X POST http://localhost:3456/run \
-H "Content-Type: application/json" \
-d '{
"repo": "owner/repo",
"task": "添加用户登录功能",
"branch": "feature/login"
}'- 接收 Webhook: 服务监听 GitHub 事件
- 解析任务: 提取任务描述和目标仓库/分支
- 创建 Worktree: 在
/tmp/claude-runner/{owner-repo}/{branch}创建 worktree - 执行任务: 运行
claude命令执行任务 - 提交推送: 自动提交修改并推送到远程
- 反馈结果: 在 PR 上添加执行结果评论
gh-claude 支持 AI Agent(如 OpenCLAW)通过 GitHub 自动驱动代码修改。
将 skill 文件复制到 Claude Code 配置目录:
mkdir -p ~/.claude/skills
cp skills/gh-claude.md ~/.claude/skills/OpenCLAW 会自动从项目根目录的 skills/ 目录加载 skill 文件。
由于此文档已在 skills/gh-claude.md,OpenCLAW 可以直接使用此 skill。
如需将此 skill 包含在 OpenCLAW 的工作流程中,请在项目根目录确保 skills/gh-claude.md 文件存在。
- Issue 触发: 在 Issue 评论中使用
@claude或/claude开头 - PR 触发: 在 PR review 或 review comment 中使用
@claude或/claude - 自动执行: gh-claude 自动创建分支、执行任务、提交代码
- 结果反馈: 执行结果通过评论发布在原始 Issue/PR 上
# 1. 创建 Issue
gh issue create --title "Fix login bug" --body "User login fails silently"
# 2. 触发任务
gh issue comment 1 --body "@claude Fix the silent login failure"
# 3. 获取结果
gh issue view 1 --comments详细使用说明请参考 skills/gh-claude.md。
| 参数 | 默认值 | 说明 |
|---|---|---|
-port |
3456 | HTTP 服务端口 |
-work-dir |
/tmp/claude-runner | Worktree 存储目录 |
-max-concurrent |
5 | 最大并发任务数 |
-github-token |
环境变量 GH_TOKEN | GitHub 访问令牌 |
-webhook-url |
空 | 任务完成后的回调 URL |