该技能用于审查依赖变更,当 PR diff 中出现依赖清单文件时触发,覆盖 package.json/package-lock.json、*.csproj、Directory.Packages.props、packages.lock.json、Cargo.toml/Cargo.lock、go.mod/go.sum、requirements.txt、pyproject.toml、poetry.lock、Gemfile/Gemfile.lock 等。
主要审查五个方面:
一、新增依赖。若 PR 引入代码库中原本不存在的依赖(含生产、开发、测试依赖),Bitwarden 要求先经 AppSec 审批。需检查是否为净新增依赖,以及 PR 描述是否包含审批信号(引用 VULN 任务如 VULN-1234,或明确提到 AppSec 审批/依赖审查流程)。无审批信号输出 IMPORTANT 提示;不清楚是否已审批则输出 QUESTION 询问。已存在的依赖(版本更新不算新增)和 Renovate/Dependabot 添加的传递依赖更新不应被标记。引用审批流程时链接到其官方 Wiki 页面。
二、主版本升级。检查是否为 SemVer 主版本变更、PR 描述是否讨论破坏性变更或迁移步骤。主版本升级无迁移讨论输出 QUESTION;版本降级输出 IMPORTANT。
三、锁文件整洁性。清单变更而锁文件未更新输出 IMPORTANT;锁文件变更而无对应清单变更输出 QUESTION;锁文件被删除输出 IMPORTANT。小清单改动导致的大锁文件 diff 属正常,不应标记。
四、自动化依赖 PR。通过作者(renovate[bot]、dependabot[bot] 等)或标题模式(Update、Bump、chore(deps) 等)识别。已存在依赖的小版本/补丁更新无需审批流程发现,关注锁文件与 CI 状态;机器人主版本升级按第二条标记;机器人引入净新增依赖按第一条标记。
五、依赖移除。验证移除是否彻底,检查代码引用(JS/TS 的 import/require、C# 的 using/.csproj 引用、Rust 的 use/extern crate、Python 的 import)以及构建与基础设施文件(Dockerfile、docker-compose.yml、CI workflow、构建脚本、Makefile 等)。残留死引用输出 DEBT。
限制:原文未提供具体安装命令或使用命令;技能以审查提示与严重级别输出为主。