用途
该技能用于将目标 GitHub 仓库中所有由 Renovate 机器人发起的开放拉取请求(PR)的变更,一次性应用到本地工作树,使所有依赖升级能够一起构建和测试。
主要能力
- 检查前置条件:验证 gh 认证状态、Git 仓库根目录、工作树是否干净,并获取基础分支对象。
- 发现开放的 Renovate PR:通过 gh pr list 按应用或作者/分支名筛选,排除草稿 PR,支持用户自定义范围过滤。
- 排序 PR:按补丁、次要、主要更新顺序,以及清单文件优先、分组 PR 优先等策略减少冲突。
- 应用每个 PR:使用 gh pr diff 生成补丁,通过 git apply --3way 应用,并处理冲突标记、补丁失败、锁文件等情形。
- 处理特殊情况:如 Maven/Gradle wrapper PR 需同步更新 .sdkmanrc;Docker 镜像版本 PR 需更新 Testcontainers 配置中的硬编码镜像标签。
- 重新生成派生文件:根据项目生态(Maven、Gradle、npm、pnpm、yarn、uv、Poetry、Go)执行对应命令重新生成锁文件。
- 验证合并升级:运行项目构建和测试,定位破坏性升级,进行最小源码修改或回退单个 PR。
- 生成报告:包含仓库、分支、起始提交、PR 处理表、跳过原因、伴随编辑、验证命令结果、变更文件列表及撤销方式。
使用方式
该技能以自然语言指令触发,例如要求“应用所有 Renovate PR”。执行过程中会调用 gh 和 git 命令,但严格限制不执行 git commit、git push、git merge、git cherry-pick、git rebase、gh pr merge、gh pr close、gh pr review 等写操作,也不创建分支、标签或工作树(除非用户要求)。所有 GitHub 操作均为只读(gh pr list、gh pr view、gh pr diff、gh api GET)。最终结果以未提交的变更保留在工作树中,由用户决定后续操作。
适用场景
- 需要批量应用 Renovate 依赖升级并在本地统一验证。
- 希望在不修改远程仓库的前提下,预览所有依赖升级的合并效果。
- 项目使用 Maven、Gradle、npm、pnpm、yarn、uv、Poetry、Go 等生态,且依赖 Renovate 管理更新。
限制
- 不执行任何提交、推送、合并或关闭 PR 的操作。
- 不修改 GitHub 上的任何内容,仅使用只读 gh 命令。
- 不自动 stash 或丢弃用户已有的未提交变更,需用户确认。
- 不创建分支、标签或工作树,除非用户明确要求。
- 不编辑 renovate.json,除非用户要求。
- 不通过削弱或删除断言来使测试通过。
- 若命令需要网络访问但不可用,会如实报告而非手动编辑锁文件。
- 具体支持的生态和命令以资料中列出的为准,其他生态暂未提供。