mcpField
A
automate-github-issues

automate-github-issues

github.com/google-labs-codeAgent 工作流100755 次安装37 周前更新
代码仓库

关于 automate-github-issues

automate-github-issues 是一项技能,用于搭建五阶段流水线:分析未关闭的 GitHub issue、借助 Jules 规划任务、检查文件冲突、并行派发编码 Agent,并依次合并 PR。适用于希望通过 GitHub Actions 或本地运行自动处理 issue 与实现工作的代码库。

主要功能

  1. 01分析未关闭的 GitHub issue
  2. 02借助 Jules 规划实现任务
  3. 03检查文件修改是否冲突
  4. 04并行派发 Jules 会话
  5. 05结合 CI 依次合并 PR

适用场景

  1. 01自动处理代码库中的未关闭 issue
  2. 02将实现工作分配给多个 Jules 会话
  3. 03减少并行任务间的文件冲突
  4. 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.json
README.md
tsconfig.json
assets/
.env.example
fleet-dispatch.yml
fleet-merge.yml
resources/
architecture.md
scripts/
fleet-analyze.ts
fleet-dispatch.ts
fleet-merge.ts
fleet-plan.ts
setup.sh
types.ts
scripts/github/
cache-plugin.ts
git.ts
issues.ts
markdown.ts
scripts/prompts/
analyze-issues.ts
bootstrap.ts

详细介绍

使用 Jules 自动处理 GitHub Issues

你正在设置一个代码库,以便自动分析未关闭的 GitHub issues、规划实现任务,并派遣多个 Jules 编码 Agent 并行修复问题。

设置内容

一个通过 GitHub Actions(或在本地)运行的 5 阶段自动化工作流:

  1. 分析 — 获取未关闭的 issues,并将其整理为结构化 Markdown
  2. 规划 — 由 Jules 会话进行深入的代码级分类,并生成自包含的任务提示词
  3. 验证 — 确认没有两个任务修改同一文件(以避免合并冲突)
  4. 派遣 — 为每个任务启动一个 Jules 会话,并行运行
  5. 合并 — 按顺序合并 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.yml
  • assets/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:向用户说明后续步骤

告知用户需要:

  1. 将 JULES_API_KEY 添加为 GitHub 代码库机密(Settings → Secrets → Actions)
  2. GitHub Actions 会自动提供 GITHUB_TOKEN
  3. 自定义 .github/workflows/fleet-dispatch.yml 中的 cron 计划(默认:每天 UTC 时间早上 6 点)
  4. 提交所有生成的文件

手动使用

设置完成后,用户可以在本地运行此工作流:

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。

资源参考

故障排查

  • “无法解析 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