关于 repo-updater
Repo Updater 是用于同步大量 GitHub 仓库的 Bash 命令行工具,可借助 AI Agent 处理审查和未提交更改。它提供试运行、状态检查、优先级排序以及可恢复的并行操作。
主要功能
- 01同步多个仓库
- 02预览并恢复同步
- 03检查仓库状态与健康情况
- 04为 AI 审查排列议题与拉取请求优先级
- 05由 Agent 处理未提交更改
适用场景
- 01保持大量仓库同步
- 02同步前预览变更
- 03查找存在本地更改的仓库
- 04排列待审查议题与拉取请求的优先级
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ oakoss/ agent-skills --skill repo-updater安装后在 Claude Code 中输入/repo-updater确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/agent-sweep.mdcommands.mdconfiguration.mdreview-system.mdtroubleshooting.md详细介绍
Repo Updater
用于同步数十或数百个 GitHub 仓库的 Bash CLI,支持 AI 辅助代码审查,并使用 agent-sweep 处理未提交的更改。
关键概念
| 概念 | 规则 |
|---|---|
| 仅使用 Git 底层命令 | 切勿解析人类可读的输出;使用 rev-list、status --porcelain、rev-parse |
| 流分离 | 人类可读内容 → stderr;数据 → stdout(--json 2>/dev/null | jq) |
不要全局 cd | 所有 Git 操作都使用 git -C |
常用命令
| 命令 | 用途 |
|---|---|
ru sync | 同步所有已配置的仓库(添加 -j8 可并行执行) |
ru sync --dry-run | 预览将要执行的操作 |
ru sync --resume | 恢复中断的同步 |
ru status | 只读检查所有仓库 |
ru add owner/repo | 将仓库添加到同步列表 |
ru remove owner/repo | 从列表中移除仓库 |
ru list | 显示已配置的仓库 |
ru prune | 检测孤立仓库 |
ru doctor | 系统健康检查 |
ru review --plan | 查找待 AI 审查的问题/PR |
ru review --apply --push | 应用已审查的更改 |
ru agent-sweep | 处理有未提交更改的仓库 |
ru agent-sweep -j4 | 并行处理仓库 |
AI 审查优先级评分
| 因素 | 分值 | 规则 |
|---|---|---|
| 类型 | 0-20 | PR:+20,问题:+10,草稿 PR:-15 |
| 标签 | 0-50 | security/critical:+50,bug/urgent:+30 |
| 年限(问题) | 0-50 | >60 天:+50,>30 天:+30 |
| 最近更新 | 0-15 | 更新于 <3 天:+15,<7 天:+10 |
| 陈旧度 | -20 | 最近审查过:-20 |
级别:CRITICAL(≥150)、HIGH(≥100)、NORMAL(≥50)、LOW(<50)
Agent Sweep 阶段
| 阶段 | 默认超时 | 操作 |
|---|---|---|
| 1:规划 | 300s | 分析未提交的更改,生成提交计划 |
| 2:提交 | 600s | 验证计划、暂存文件、创建提交、执行质量门禁 |
| 3:发布 | 300s(可选) | 确定版本升级,创建标签/发布 |
执行模式:agent(完整工作流)、plan(仅阶段 1)、apply(阶段 2 和 3)
更新策略
| 策略 | 行为 |
|---|---|
ff-only | 仅快进;若发生分歧则失败(默认) |
rebase | 将本地提交变基到远程提交之上 |
merge | 必要时创建合并提交 |
退出码
| 代码 | 含义 |
|---|---|
| 0 | 所有仓库均已成功处理 |
| 1 | 部分仓库处理失败 |
| 2 | 冲突或质量门禁失败 |
| 3 | 系统/依赖错误 |
| 4 | 参数无效 |
| 5 | 已中断(使用 --resume) |
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
RU_PROJECTS_DIR | /data/projects | 仓库的基础目录 |
RU_LAYOUT | flat | 路径布局(flat、owner-repo、full) |
RU_PARALLEL | 1 | 并行工作进程 |
RU_TIMEOUT | 30 | 网络超时时间(秒) |
RU_UPDATE_STRATEGY | ff-only | 拉取策略 |
GH_TOKEN | (来自 gh CLI) | GitHub 令牌 |
常见错误
| 错误 | 正确做法 |
|---|---|
解析供人阅读的 Git 输出(例如 git status 文本) | 使用 Git 底层命令:rev-list、status --porcelain、rev-parse |
使用 cd 切换到仓库目录 | 所有 Git 操作都使用 git -C <path> |
| 在同一输出流中混合数据和供人阅读的输出 | 数据输出到 stdout,供人阅读的内容输出到 stderr(--json 2>/dev/null | jq) |
在不熟悉的仓库中未先使用 --dry-run 就运行同步 | 执行前务必使用 ru sync --dry-run 预览 |
在 agent-sweep 脚本中使用 service_role 密钥或绕过身份验证 | 遵循安全防护措施;agent-sweep 设有预检,原因就在于此 |
委派
- 找出哪些仓库有未提交的更改或不同步:使用
ExploreAgent 运行ru status并分析输出 - 使用 agent-sweep 处理多个仓库中的脏仓库:使用
TaskAgent 运行ru agent-sweep -j4并处理质量门禁失败 - 规划多仓库同步策略并确定审查优先级:使用
PlanAgent 设计同步顺序、并行设置和审查预算分配
参考资料
- 命令 — 同步、状态、仓库管理、诊断、输出模式、jq 示例
- 审查系统 — 两阶段工作流、会话驱动程序、成本预算、优先级评分
- Agent Sweep — 三阶段工作流、预检、安全防护措施、执行模式
- 配置 — XDG 目录结构、仓库列表格式、布局模式、单仓库配置
- 故障排除 — 常见问题、调试模式、预检失败调试、集成点
评论
支持 Markdown