SuperAPI AI 工具集

fix-security-vulnerability

安全与审计

查看项目

更新于 10-15 21:51

技能介绍

用途:分析 Dependabot 安全告警,针对 sentry-changelog Next.js 应用提出依赖修复方案,不自动提交,先分析后等用户确认。

主要能力与流程:

  1. 获取漏洞详情:gh api repos/getsentry/sentry-changelog/dependabot/alerts/<alert-number>,提取包名、受影响与修复版本、CVE、严重级别、描述。输入可用 Dependabot URL 或告警编号。
  2. 分析依赖树:pnpm why <package-name>,判断是直接还是传递依赖、生产还是开发依赖。
  3. 确定修复策略:检查 package.json 中 "//" 字段的固定原因;已知 google-auth-library 固定在 v9.x 以匹配 @google-cloud/storage 捆绑版本(v10.x 会破坏 Vercel OIDC 认证)。补丁升级风险最低优先;次版本升级通常安全;主版本升级需先分析破坏性变更;传递依赖则升级父包。
  4. 传递依赖:用 pnpm why 与 npm view <parent-package>@latest dependencies.<vulnerable-package> 检查父包;父包有修复则升级父包,无修复则等待或向上游报告。避免使用 pnpm.overrides,仅在无上游修复且为生产关键漏洞、强制版本为补丁或次版本且已手动验证兼容性时考虑。
  5. 呈现分析:展示包、严重级别、CVE、受影响与修复版本、依赖链、建议(可安全升级/有意固定勿动/升级父包)及拟议修复,等待用户批准。
  6. 应用修复(获批后):编辑 package.json,pnpm install 更新锁文件,pnpm why <package> 验证,pnpm test:run 运行测试,git diff 查看变更,不提交,交由用户审阅。
  7. 替代 dismissal:对不应修复的告警,经用户批准后可用 gh api --method PATCH repos/getsentry/sentry-changelog/dependabot/alerts/<number> -f state=dismissed -f dismissed_reason=<reason> -f dismissed_comment="<comment>" 关闭。理由包括 tolerable_risk、no_bandwidth、inaccurate、not_used。

适用场景:sentry-changelog 项目中的 Dependabot 告警处理,区分生产/开发依赖,处理直接与传递依赖,判断是否应升级或关闭告警。

限制与注意:绝不自动提交;检查固定原因;开发依赖漏洞优先级较低;升级父包而非传递依赖;避免 pnpm.overrides;修复后必须验证并运行测试。该技能针对特定仓库与工具链(gh、pnpm),其他项目适用性暂未提供。