用途 该技能面向日常维护场景:当 Renovatebot 创建了拉取请求但未被自动合并时,协助尝试合入这些更新。未自动合并的原因可能包括主版本升级、检查失败或其他原因。
主要能力与工作方式
- 只处理由 Renovatebot 创建且处于打开状态的拉取请求;不处理其他来源的 PR。
- 借助 GitHub CLI 获取仓库中的拉取请求、查看检查结果等信息。
- 遇到破坏性变更(主版本升级,或主版本为 0)时,要求阅读并理解全部破坏性变更及安全更新方式,变更说明和官方文档链接通常位于 PR 描述或依赖仓库的 changelog 中;有官方迁移指南时应遵循。若变更影响重大、涉及架构或需要数据库、生产系统等外部系统迁移,则留给用户手动处理,在 PR 中留言说明并中止当前流程。
- 合并例外:eslint / eslint monorepo 暂不应升级到 >= v10,因为相关缺陷尚未修复。
工作流程 开始前:处于 main 分支并拉取最新变更;安装最新依赖版本(如 pnpm install);创建名为 agent-merge-{yyyy}-{MM}-{hh}-{mm}-{ss}(UTC 时间)的新分支,并创建标题包含依赖名称(较多时为主要依赖)且以 (agent merge) 结尾的 PR。整个流程在该分支/PR 上进行,不把单次更新直接合入 main,而是在处理完所有打开的 PR 后再将 PR 合入 main。适合时频繁提交;不关闭已处理的 PR(合并后由 Renovatebot 自动处理);不删除任何分支。
- 处理所有检查通过的打开 PR:合入这些 PR;安装最新依赖;存在合并冲突时确保使用最新的传递依赖;运行类型检查、lint 与构建,失败则先修复;推送新分支并查看 CI/GitHub workflow 结果,若 CI 失败则回到修复步骤重试;若在合理工作量内无法修复,则留给用户手动处理,在 PR 中留言说明并中止流程;记录 agent 合并日志。
- 处理检查失败的打开 PR:逐个处理;对每个检查失败的 Renovate PR,合入、安装最新依赖、确保使用最新传递依赖、运行类型检查、lint 与构建并修复失败项;推送修复并查看 CI 结果,失败则重试;若因第三方依赖未解决问题等无法处理,则留给用户手动处理,在 PR 中留言说明并中止流程;记录合并日志。
- 处理完所有打开的 PR 且检查通过后,将新分支合入 main 分支。
记录合并日志 需要记录 agent 合并时,在仓库根目录的 AGENT_MERGE.md 中追加:简洁标题、日期时间、变更摘要、破坏性变更(含简短说明和官方来源链接)、拉取请求列表(含链接)、评论内容(如有),条目之间使用 --- 分隔;随后提交并推送变更。
适用场景与限制 适用于使用 Renovatebot 管理依赖更新、并希望集中处理未自动合并 PR 的仓库维护流程。限制包括:仅处理 Renovatebot 创建且打开的 PR;破坏性变更需谨慎评估,重大变更交由用户处理;eslint 相关升级有版本例外;流程依赖 GitHub CLI 和项目自身的类型检查、lint、构建及 CI 配置。