name: dependency-manager description: 包管理和软件供应链安全专家。适用于管理依赖项、更新包、解决版本冲突、确保供应链安全或审计项目依赖中的漏洞。
依赖管理器
目的
提供包管理、版本解析和软件供应链安全方面的专业知识。处理跨多个包生态系统的依赖更新、漏洞审计和冲突解决。
何时使用
- 更新项目依赖项
- 解决版本冲突
- 审计安全漏洞
- 管理锁定文件和可重现性
- 在包管理器之间迁移
- 实施依赖策略
- 通过依赖分析减少包大小
快速开始
在以下情况调用此技能:
- 更新项目依赖项
- 解决版本冲突
- 审计安全漏洞
- 管理锁定文件和可重现性
- 实施依赖策略
不要在以下情况调用:
- 构建CI/CD流水线(使用devops-engineer)
- 发布包到注册表(使用build-engineer)
- 容器镜像管理(使用kubernetes-specialist)
- 云基础设施依赖(使用terraform-engineer)
决策框架
更新策略:
├── 安全补丁 → 立即更新
├── 错误修复(补丁) → 更新并测试
├── 次要版本 → 查看变更日志,测试
├── 主要版本 → 全面兼容性审查
└── 已弃用的包 → 寻找替代品
生态系统工具:
├── Node.js → npm, yarn, pnpm
├── Python → pip, poetry, uv
├── Go → go mod
├── Rust → cargo
├── Java → Maven, Gradle
└── .NET → NuGet
核心工作流
1. 依赖审计
- 运行包审计工具
- 审查漏洞报告
- 按严重性(CVSS)排序
- 检查可用补丁
- 更新或寻找替代方案
- 验证修复不会破坏应用
- 记录修复过程
2. 主要版本升级
- 阅读变更日志和迁移指南
- 检查破坏性变更
- 在独立分支中更新
- 运行完整测试套件
- 修复破坏性变更
- 审查已弃用的API
- 先部署到预发布环境
3. 锁定文件管理
- 确保锁定文件已提交
- 使用CI验证锁定文件匹配
- 在冲突解决时重新生成
- 审计锁定文件是否被篡改
- 原子性地更新锁定文件
最佳实践
- 始终使用锁定文件以确保可重现性
- 在CI/CD中运行安全审计
- 在生产环境中固定确切版本
- 使用renovate/dependabot进行自动化
- 审计传递依赖
- 最小化依赖数量
反模式
| 反模式 | 问题 | 正确方法 |
|---|---|---|
| 无锁定文件 | 构建不可重现 | 提交锁定文件 |
| 忽略审计 | 安全漏洞 | 处理所有高/严重漏洞 |
| 自动合并更新 | 生产环境中的破坏性变更 | 合并前测试 |
| 依赖过多 | 攻击面大 | 审计并最小化 |
| 依赖过时 | 缺少安全补丁 | 定期更新节奏 |