SuperAPI AI 工具集

fix-dependencies

部署与运维

查看项目

更新于 10-16 00:32

技能介绍

用途:在当前本地分支上使用 npm audit 修复所有依赖漏洞,无需用户输入。范围仅限本地分支,不同步 origin、不查询 ADO、不处理 Dependabot;S360/ADO/GitHub 告警应改用 /security-alerts。

主要能力与流程:

  1. 审计:运行 npm audit --json 2>&1,生成修复清单,按规则处理:有 patched_version 则修复(安全场景允许 patch/minor/major);inBundle 且父包有更新则升级父包;inBundle 且父包无更新则直接修补 lock 文件;patched_version 为 null 则接受风险并记录;开发依赖且低危且无补丁则接受风险。已知永久接受风险:elliptic(GHSA-848j-6mx2-7j84)经 rewiremock,仅开发用且无补丁,不再标记。
  2. 修复(不中途暂停):策略 A 用 npm override 处理非打包的传递依赖,先 npm view <pkg>@<version> version 确认版本,再改 package.json 的 overrides 并 npm install、npm ls <pkg> 验证;硬性规则:不得把 "minimatch": "^3.x" 作为扁平 override(会导致 npm 无限循环),ajv override 必须保持 ^6.x(v8 会破坏 ESLint),未经明确要求不得改动有意固定的 override(nanoid、electron-to-chromium、@types/node)。策略 B 直接升级 dependencies/devDependencies 版本后 npm install。策略 C 针对 inBundle 包修补 lock 文件,用 node 脚本查找所有匹配路径、获取 npm view <pkg>@<patched-version> dist.tarball dist.integrity --json 元数据并改写 package-lock.json,再 npm install。策略 D 接受风险并在总结中记录,不阻塞、不询问。
  3. 验证:npm audit 2>&1 与 npm run ci 2>&1;npm run ci 的功能测试在本地会因缺少 PA_BT_ORG_PASSWORD 失败,属预期,不算阻塞;若非功能测试步骤(TypeScript、lint、单元测试)失败,需修复并重跑,不得提交损坏构建。
  4. 提交与 PR(仅当第 3 步通过):git add package.json package-lock.json、git status 确认无误、git commit -m "chore: fix dependency vulnerabilities",再运行 /create-pr 创建 PR。

最终总结需在交给 /create-pr 前打印:已修复项(包名、旧→新版本、所用策略)与接受风险项(包名、GHSA ID、原因)。

限制:仅本地分支;不查询 ADO/GitHub;功能测试本地失败为预期;部分漏洞可能只能接受风险。