关于 fix-dependabot
用于修复 Bun 单体仓库中 Dependabot PR 的仓库技能。它会同步更新其他包的依赖版本并重新生成锁文件,检查变更,也会处理依赖冲突或可能有破坏性的主版本升级。
主要功能
- 01查看 Dependabot PR 详情
- 02更新单体仓库中匹配的包版本
- 03通过 `bun install` 重新生成 `bun.lock`
- 04提交前核对已修改文件
- 05提交、推送并切回先前分支
适用场景
- 01同步 Dependabot 版本更新到其他包
- 02依赖更新后刷新过期锁文件
- 03评估主版本升级或依赖冲突
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ remotion-dev/ remotion --skill fix-dependabot安装后在 Claude Code 中输入/fix-dependabot确认已加载。
详细介绍
Dependabot PR 只会更新一个 package.json,且不会运行 bun install,因此 bun.lock 文件会过时,而 monorepo 中的其他包仍引用旧版本。此技能会修复这两个问题。
步骤
-
获取 PR 信息 — 使用
gh pr view <number> --json headRefName,files,title,body确定分支名称、更新的依赖项以及新旧版本。 -
检出分支:
git fetch origin <branch>
git checkout <branch>
- 更新 monorepo 中的所有实例 — Dependabot 只会修改一个包。搜索其他所有引用了该依赖旧版本的
package.json文件,并一并更新:
rg '"<dependency>": "[~^]?<old-version>"' --glob '**/package.json'
将每个匹配项都更新为新版本。保留各个包原有的版本前缀样式(^、~ 或精确版本)。
-
从仓库根目录运行
bun install,重新生成bun.lock。 -
验证 — 运行
git status,确认只有bun.lock和预期的package.json文件被修改。如果还有其他意外变更,请先调查再继续。 -
提交并推送:
git add -u
git commit -m "Update <dependency> to <version> across all monorepo packages"
git push
- 切回 — 返回之前所在的分支(通常是
main):
git checkout main
注意事项
- Dependabot 会提示“只要你不自行修改此 PR,Dependabot 就会解决其中的任何冲突”——但更新锁文件和同级包属于预期工作流,不会造成问题。
- 如果升级的是主版本(例如 vite 5 → 6),请考虑这次升级是否合适,或者是否应该忽略。检查是否存在重大变更。
- 如果
bun install失败,依赖项版本可能与其他包存在冲突。在这种情况下,请关闭 PR 并发表评论说明原因。
评论
支持 Markdown