Dependency Management 是一个依赖管理专家技能,用于管理项目依赖,涵盖更新、漏洞扫描、许可证合规与依赖树优化。
用途与适用场景 当需要更新项目依赖、扫描安全漏洞、分析依赖树、确保许可证合规、解决版本冲突或优化依赖使用时可使用该技能。
主要能力
- 依赖分析:识别未使用的依赖与版本冲突。
- 漏洞扫描:发现并修复已知安全漏洞。
- 许可证合规:验证依赖许可证是否兼容。
- 安全更新:在测试与验证的前提下更新依赖。
- 依赖树优化:优化依赖树并减少冗余。
- 版本管理:解决版本冲突与更新。
辅助脚本 该技能在 scripts/ 目录中提供 Python 辅助脚本:parse_dependencies.py,用于解析依赖文件(package.json、requirements.txt、pyproject.toml),输出 JSON 格式的已解析依赖与元数据。 调用示例: python scripts/parse_dependencies.py package.json requirements.txt
使用方式
- 管理依赖:更新所有依赖并检查漏洞,扫描依赖安全问题。
- 具体任务:检查所有依赖的许可证兼容性。
管理流程
- 分析依赖 使用辅助脚本:
Parse dependency files
python scripts/parse_dependencies.py package.json requirements.txt pyproject.toml 包管理器工具:
- npm:npm outdated、npm list
- pip:pip list --outdated
- maven:mvn versions:display-dependency-updates
- gradle:gradle dependencyUpdates
- 扫描漏洞 工具:
- npm:npm audit
- pip:pip-audit
- maven:OWASP Dependency Check
- gradle:Dependency Check 插件
-
检查许可证 流程:列出所有依赖许可证;检查与项目许可证的兼容性;识别任何不兼容的许可证;提供许可证报告。
-
更新依赖 安全更新流程:检查更新;审阅变更日志;增量更新;每次更新后运行测试;验证功能。
示例:漏洞扫描 输入:Scan for vulnerabilities 输出示例:
Dependency Vulnerability Scan
Critical Vulnerabilities
- lodash (4.17.20)
- Severity: High
- Issue: Prototype Pollution
- Fix: Update to 4.17.21 npm update lodash
- express (4.16.4)
- Severity: Medium
- Issue: Path Traversal
- Fix: Update to 4.18.2 npm update express Summary Total vulnerabilities: 5 Critical: 1 High: 2 Medium: 2
参考文件 可按需加载针对特定包管理器的参考文件:
- references/package_managers.md:npm、pip、Poetry、Maven、Gradle、Cargo 的命令与模式以及常见依赖管理实践。
- references/DEPENDENCY_AUDIT.template.md:依赖审计报告模板,包含漏洞、过期包、许可证合规。 处理特定包管理器时,加载 references/package_managers.md 并参考相应章节。
最佳实践
- 定期更新依赖。
- 安全优先:优先处理安全更新。
- 更新后测试:更新后始终进行测试。
- 锁定文件:使用锁定文件(package-lock.json、yarn.lock)。
- 版本固定:固定关键依赖版本。
相关用例 依赖更新、安全漏洞扫描、许可证合规、依赖树优化、版本冲突解决。
限制 该技能的收费、价格、平台支持范围与具体效果暂未提供。