Google OSV-Scanner 版本迁移指南:从v1到v2的重要变更解析
前言
Google OSV-Scanner 是一款开源的组件扫描工具,专门用于检测项目依赖中的潜在问题。随着项目从v1版本升级到v2版本,引入了一些重要的变更和改进。本文将详细解析这些变更,帮助开发者顺利完成迁移。
命令行接口(CLI)变更
实验性功能转为稳定功能
在v2版本中,许多实验性功能已经稳定,相关标志已移除"experimental"前缀:
-
调用分析功能标志变更:
--experimental-call-analysis
→--call-analysis
--experimental-no-call-analysis
→--no-call-analysis
-
包扫描范围标志变更:
--experimental-all-packages
→--all-packages
-
许可证检查功能合并:
--experimental-licenses
和--experimental-license-summary
合并为--licenses
- 不带参数的
--licenses
等同于原来的--experimental-license-summary
- 仍可指定允许的许可证列表:
--licenses="MIT,Apache 2.0,..."
-
离线模式相关标志变更:
--experimental-offline
→--offline
--experimental-offline-vulnerabilities
→--offline-vulnerabilities
--experimental-download-offline-databases
→--download-offline-databases
-
解析控制标志变更:
--experimental-no-resolve
→--no-resolve
容器扫描功能重构
容器扫描功能已迁移为独立子命令:
# 旧方式
osv-scanner --docker <image-name>
# 新方式
osv-scanner scan image <image-name>
这种变更使命令结构更加清晰,符合现代CLI工具的设计规范。
引导修复模式变更
引导修复功能现在默认使用非交互模式。如需交互式体验,需显式指定--interactive
标志。
日志级别简化
移除了verbose
日志级别,现在仅支持:
info
warn
error
目录扫描快捷方式
现在osv-scanner <dir>
是osv-scanner scan source <dir>
的快捷方式,简化了常用命令。
SBOM扫描规范变更
SBOM扫描现在要求文件名遵循相关规范,例如SPDX格式的文件应命名为*.spdx.json
。
Git根目录扫描行为变更
不再自动扫描.git
根目录哈希。相关标志变更:
- 移除
--skip-git
- 新增
--include-git-root
用于显式包含Git根目录扫描
已移除的废弃标志
以下标志已完全移除:
scan --json
→ 使用--format=json
fix --disallow-major-upgrades
fix --disallow-package-upgrades
JSON输出变更
许可证摘要信息现在仅在指定--license-summary
时包含在JSON输出中,不再默认显示每个包的详细信息。这一变更减少了输出体积,提高了可读性。
迁移建议
- 逐步替换标志:检查现有脚本和CI/CD流程,逐步替换已变更的标志
- 测试新命令:特别是容器扫描和SBOM扫描的新用法
- 更新文档:确保团队内部文档反映这些变更
- 关注输出格式:特别是JSON输出的变更可能影响自动化处理流程
结语
v2版本的这些变更加强了工具的稳定性和一致性,虽然需要一定的迁移工作,但长期来看将提高使用体验和可靠性。建议开发者在测试环境中充分验证后,再在生产环境中应用这些变更。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考