关于 automate-github-issues
automate-github-issues 是一项技能,用于搭建五阶段流水线:分析未关闭的 GitHub issue、借助 Jules 规划任务、检查文件冲突、并行派发编码 Agent,并依次合并 PR。适用于希望通过 GitHub Actions 或本地运行自动处理 issue 与实现工作的代码库。
主要功能
- 01分析未关闭的 GitHub issue
- 02借助 Jules 规划实现任务
- 03检查文件修改是否冲突
- 04并行派发 Jules 会话
- 05结合 CI 依次合并 PR
适用场景
- 01自动处理代码库中的未关闭 issue
- 02将实现工作分配给多个 Jules 会话
- 03减少并行任务间的文件冲突
- 04在本地或 GitHub Actions 运行自动化
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ google-labs-code/ jules-skills --skill automate-github-issues安装后在 Claude Code 中输入/automate-github-issues确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
package.jsonREADME.mdtsconfig.jsonassets/.env.examplefleet-dispatch.ymlfleet-merge.ymlresources/architecture.mdscripts/fleet-analyze.tsfleet-dispatch.tsfleet-merge.tsfleet-plan.tssetup.shtypes.tsscripts/github/cache-plugin.tsgit.tsissues.tsmarkdown.tsscripts/prompts/analyze-issues.tsbootstrap.ts详细介绍
使用 Jules 自动处理 GitHub Issues
你正在设置一个代码库,以便自动分析未关闭的 GitHub issues、规划实现任务,并派遣多个 Jules 编码 Agent 并行修复问题。
设置内容
一个通过 GitHub Actions(或在本地)运行的 5 阶段自动化工作流:
- 分析 — 获取未关闭的 issues,并将其整理为结构化 Markdown
- 规划 — 由 Jules 会话进行深入的代码级分类,并生成自包含的任务提示词
- 验证 — 确认没有两个任务修改同一文件(以避免合并冲突)
- 派遣 — 为每个任务启动一个 Jules 会话,并行运行
- 合并 — 按顺序合并 PR,并进行 CI 验证
设置步骤
步骤 1:将 fleet 脚本复制到代码库
将此 skill 中的整个 scripts/ 目录复制到目标代码库中的 scripts/fleet/:
Target structure:
scripts/fleet/
├── fleet-analyze.ts
├── fleet-plan.ts
├── fleet-dispatch.ts
├── fleet-merge.ts
├── types.ts
├── prompts/
│ ├── analyze-issues.ts
│ └── bootstrap.ts
└── github/
├── git.ts
├── issues.ts
├── markdown.ts
└── cache-plugin.ts
重要: 必须准确保留目录结构。脚本之间使用相对导入。
步骤 2:复制工作流模板
将 assets/ 中的工作流文件复制到代码库的 .github/workflows/ 目录:
assets/fleet-dispatch.yml→.github/workflows/fleet-dispatch.ymlassets/fleet-merge.yml→.github/workflows/fleet-merge.yml
步骤 3:为 fleet 脚本创建 package.json
创建 scripts/fleet/package.json,并添加所需依赖:
{
"name": "fleet-scripts",
"private": true,
"type": "module",
"dependencies": {
"@google/jules-sdk": "^0.1.0",
"octokit": "^4.1.0",
"find-up": "^7.0.0"
},
"devDependencies": {
"@types/bun": "^1.2.0"
}
}
步骤 4:创建环境模板
将 assets/.env.example 复制到代码库根目录。
步骤 5:安装依赖
cd scripts/fleet && bun install
步骤 6:向用户说明后续步骤
告知用户需要:
- 将
JULES_API_KEY添加为 GitHub 代码库机密(Settings → Secrets → Actions) - GitHub Actions 会自动提供
GITHUB_TOKEN - 自定义
.github/workflows/fleet-dispatch.yml中的 cron 计划(默认:每天 UTC 时间早上 6 点) - 提交所有生成的文件
手动使用
设置完成后,用户可以在本地运行此工作流:
cd scripts/fleet
# Fetch open issues
bun fleet-analyze.ts
# Plan tasks (creates a Jules planning session)
JULES_API_KEY=<key> bun fleet-plan.ts
# Dispatch parallel agents
JULES_API_KEY=<key> bun fleet-dispatch.ts
# Merge PRs sequentially
GITHUB_TOKEN=<token> bun fleet-merge.ts
自定义
调整提示词
scripts/fleet/prompts/analyze-issues.ts 中的分析提示词决定了对 issues 的调查深度。用户可以调整:
- 根本原因分析的深度
- 解决方案的实现细节级别
- 避免合并冲突的规则
- 文件归属限制
筛选 Issue
编辑 scripts/fleet/github/issues.ts,按标签、里程碑或状态筛选 issues。
资源参考
- 架构概览 — 详细说明 5 阶段工作流
故障排查
- “无法解析 git 远程 URL”:确保代码库配置了有效的 GitHub 远程地址(
git remote get-url origin) - 文件归属冲突错误:两个任务声明要修改同一文件。请调整任务 JSON,或手动合并任务。
- 合并期间 CI 超时:在
fleet-merge.ts中增大maxWaitMs(默认:10 分钟) - 找不到 Bun:安装 Bun:
curl -fsSL https://bun.sh/install | bash
评论
支持 Markdown