demaconsulting/SpdxTool
GitHub: demaconsulting/SpdxTool
SpdxTool 是一款 .NET 命令行工具,用于操作、验证和可视化 SPDX 格式的软件物料清单文件。
Stars: 0 | Forks: 0
# SPDX Tool





[](https://sonarcloud.io/summary/new_code?id=demaconsulting_SpdxTool)
[](https://sonarcloud.io/summary/new_code?id=demaconsulting_SpdxTool)
[](https://www.nuget.org/packages/DemaConsulting.SpdxTool)
用于操作 SPDX SBOM 文件的 Dotnet 工具
## 安装
以下命令会将 SpdxTool 添加到 Dotnet 工具清单文件中:
```
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local DemaConsulting.SpdxTool
```
然后可以通过以下方式执行该工具:
```
dotnet spdx-tool
```
## 用法
以下展示了 SpdxTool 的命令行用法:
```
Usage: spdx-tool [options] [arguments]
Options:
-h, --help Show this help message and exit
-v, --version Show version information and exit
-l, --log Log output to file
-s, --silent Silence console output
--validate Perform self-validation
-r, --result Self-validation result file (.trx TRX or .xml JUnit XML)
Commands:
help Display extended help about a command
add-package Add package to SPDX document (workflow only).
add-relationship Add relationship between elements.
copy-package Copy package between SPDX documents (workflow only).
diagram [tools] Generate mermaid diagram.
find-package Find package ID in SPDX document
get-version Get the version of an SPDX package.
hash Generate or verify hashes of files
print Print text to the console
query [args] Query program output for value
rename-id Rename an element ID in an SPDX document.
run-workflow Runs the workflow file/url
set-variable Set workflow variable (workflow only).
to-markdown [args] Create Markdown summary for SPDX document
update-package Update package in SPDX document (workflow only).
validate [ntia] Validate SPDX document for issues
```
关于用法的更详细说明可以在[命令行文档][command-line-docs]中找到
## 工作流 YAML 文件
可以使用以下格式的工作流 YAML 文件来驱动 SpdxTool:
```
# Workflow 参数
parameters:
parameter-name: value
# Workflow 步骤
steps:
- command:
inputs:
- command:
inputs:
input1: value
input2: ${{ parameter-name }}
```
关于工作流 YAML 文件的更详细说明可以在[工作流文档][workflow-docs]中找到
## 自验证
运行自验证会生成包含以下信息的报告:
```
# DemaConsulting.SpdxTool
| Information | Value |
| :------------------ | :------------------------------------------------- |
| SpdxTool Version | |
| Machine Name | |
| OS Version | |
| DotNet Runtime | |
| Time Stamp | |
✓ SpdxTool_AddPackage - Passed
✓ SpdxTool_AddRelationship - Passed
✓ SpdxTool_Validate - Passed
✓ SpdxTool_CopyPackage - Passed
✓ SpdxTool_Diagram - Passed
✓ SpdxTool_FindPackage - Passed
✓ SpdxTool_GetVersion - Passed
✓ SpdxTool_Hash - Passed
✓ SpdxTool_Ntia - Passed
✓ SpdxTool_Query - Passed
✓ SpdxTool_RenameId - Passed
✓ SpdxTool_RunNuGetWorkflow - Passed
✓ SpdxTool_ToMarkdown - Passed
✓ SpdxTool_UpdatePackage - Passed
Total Tests: 14
Passed: 14
Failed: 0
Validation Passed
```
报告中的每个测试都证明特定命令能正常工作:
- **SpdxTool_AddPackage** - `add-package` 命令将带有关系的包添加到 SPDX 文件中。
- **SpdxTool_AddRelationship** - `add-relationship` 命令在 SPDX 元素之间添加关系。
- **SpdxTool_Validate** - `validate` 命令接受有效的 SPDX 文件并拒绝无效的 SPDX 文件。
- **SpdxTool_CopyPackage** - `copy-package` 命令在 SPDX 文件之间复制带有关系的包。
- **SpdxTool_Diagram** - `diagram` 命令从 SPDX 文件生成 Mermaid 图表。
- **SpdxTool_FindPackage** - `find-package` 命令在 SPDX 文件中按名称定位包。
- **SpdxTool_GetVersion** - `get-version` 命令从 SPDX 文件中检索包版本。
- **SpdxTool_Hash** - `hash` 命令生成并验证文件哈希值。
- **SpdxTool_Ntia** - `validate` 命令强制执行 NTIA 最低 SBOM 元素要求。
- **SpdxTool_Query** - `query` 命令从程序输出中提取值。
- **SpdxTool_RenameId** - `rename-id` 命令在整个 SPDX 文件中重命名元素标识符。
- **SpdxTool_RunNuGetWorkflow** - `run-workflow` 命令从 NuGet 包执行工作流。
- **SpdxTool_ToMarkdown** - `to-markdown` 命令从 SPDX 文件生成 Markdown 摘要。
- **SpdxTool_UpdatePackage** - `update-package` 命令更新 SPDX 文件中包的所有字段。
有关每个验证测试的详细说明,请参阅[用户指南][user-guide]。
验证失败时,工具将以非零退出代码退出。
此报告在需要工具验证证据的受监管行业中可能很有用。
## 项目质量
本项目保持高代码质量标准:
- ✓ 全面的单元测试覆盖率
- ✓ 使用多个分析器进行静态代码分析
- ✓ 使用 SonarCloud 进行持续集成
- ✓ 用于工具正确性的自验证系统
- ✓ 将警告视为错误
- ✓ 使用 EditorConfig 保持一致的代码风格
- ✓ **持续合规**:每次 CI 运行都会自动生成合规证据,
遵循[持续合规][link-continuous-compliance]方法论
## 许可证
版权所有 (c) DEMA Consulting。根据 MIT 许可证授权。详见 [LICENSE][link-license]。
通过为此项目做出贡献,您同意您的贡献将根据 MIT 许可证进行授权。
## 更多信息
更多信息可在以下位置找到:
- [架构文档][architecture]
- [MSBuild 集成][msbuild-integration]
- [SPDX 站点][spdx-site]
- [GitHub CI][github-ci-docs]
- [与 Microsoft SBOM 工具配合使用][sbom-tool-docs]
标签:DevSecOps, Homebrew安装, NuGet包, SBOM, SPDX, 上游代理, 依赖管理, 多人体追踪, 开源合规, 文件处理, 清单文件, 硬件无关, 网络调试, 自动化, 许可证管理, 跌倒检测, 软件物料清单