一款帮助创建和交互SBOM(软件物料清单)的工具集,可丰富许可和版权信息,并检查开源许可合规性
项目描述
合规助手
合规助手 是一个综合工具集,旨在帮助创建和管理软件物料清单(SBOM)。它可以帮助丰富SBOM的许可和版权信息,并使用来自 ClearlyDefined 的数据检查开源许可合规性。
功能
- SBOM生成:从指定的代码仓库自动生成CycloneDX SBOM。
- SBOM丰富化:使用ClearlyDefined数据,通过详细的许可和版权信息增强现有的SBOM。
- SBOM解析:从CycloneDX SBOM中提取特定信息。
- 许可和版权信息检索:从ClearlyDefined中检索单个软件包的许可和版权详情。
- 许可合规性支持:从SBOM中提取和统一许可,建议可能的许可输出候选者。
以下功能中的一些是由flict、cdxgen和syft等优秀程序实现的,如flict、cdxgen和syft。
要求
- Python 3.10+
- 访问ClearlyDefined服务的互联网连接
- 至少一个SBOM生成器
安装
通过pipx安装和运行(推荐)
pipx使安装和运行Python程序变得更加容易,并避免与其他包冲突。使用以下命令安装它
pip3 install pipx
以下单行命令既安装又运行此程序,来自PyPI
pipx run compliance-assistant
如果您想在每次使用时都不用前置pipx run
来使用compliance-assistant,可以像这样全局安装它
pipx install compliance-assistant
然后,compliance-assistant将在~/.local/bin
中可用,这必须添加到您的$PATH
中。
之后,请确保~/.local/bin
已添加到您的$PATH
中。在Windows上,您的环境所需的路径可能看起来像%USERPROFILE%\AppData\Roaming\Python\Python310\Scripts
,具体取决于您安装的Python版本。
要升级compliance-assistant到最新可用版本,请运行此命令
pipx upgrade compliance-assistant
其他安装方法
您还可以使用纯pip
或poetry
安装此软件包。
使用
合规性助手提供多个命令来简化不同的任务。每个命令都是通过带有特定选项的compliance-assistant
命令行界面调用的。
根据您的具体安装方法,这可能是以下之一
# Run via pipx
pipx run compliance-assistant
# Installation via pipx or pip
compliance-assistant
# Run via poetry
poetry run compliance-assistant
在以下内容中,我们将仅使用compliance-assistant
。
命令结构
compliance-assistant <command> [<subcommand>] [subcommand-options]
命令
请运行compliance-assistant --help
以获取命令和全局选项的概述。
对于每个命令,您都可以获取详细选项,例如compliance-assistant sbom enrich --help
。
示例
- 使用syft为当前目录创建SBOM:
compliance-assistant sbom generate -g syft -d . -o /tmp/my-sbom.json
- 使用ClearlyDefined数据丰富SBOM:
compliance-assistant sbom enrich -f /tmp/my-sbom.json -o /tmp/my-enriched-sbom.json
- 从SBOM中提取某些数据:
compliance-assistant sbom parse -f /tmp/my-enriched-sbom.json -e purl,copyright,name
- 为单个软件包收集ClearlyDefined许可/版权信息:
compliance-assistant clearlydefined fetch -p pkg:pypi/inwx-dns-recordmaster@0.3.1
- 获取丰富SBOM中找到的所有许可:
compliance-assistant licensing list -f /tmp/my-enriched-sbom.json -o plain
- 基于SBOM中的许可获取许可输出候选者:
compliance-assistant licensing outbound -f /tmp/my-enriched-sbom.json
作为GitHub工作流程运行
您还可以使用GitHub工作流程定期生成SBOM,例如在每个发布版本时。
name: Generate and enrich SBOM
on:
release:
types: [published]
jobs:
# Generate the SBOM with syft and enrich the generated SBOM
sbom-generate-and-enrich:
runs-on: ubuntu-22.04
needs: sbom-gen
steps:
# Install compliance-assistant
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "pip"
- name: Install compliance-assistant
run: pip install compliance-assistant
# Install syft
- run: mkdir -p ~/.local/bin
- name: Install syft
run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b ~/.local/bin
# Generate SBOM with syft via compliance-assistant
- name: Generate SBOM with syft
run: poetry run compliance-assistant sbom generate -g syft -d . -o ${{ runner.temp }}/sbom-raw.json
# Enrich SBOM with compliance-assistant
- name: Enrich SBOM
run: compliance-assistant sbom enrich -f ${{ runner.temp }}/sbom-raw.json -o ${{ runner.temp }}/sbom-enriched.json
# Upload enriched SBOM as artifact
- name: Store enriched SBOM as artifact
uses: actions/upload-artifact@v4
with:
name: sbom-enriched
path: ${{ runner.temp }}/sbom-enriched.json
开发和贡献
我们欢迎对合规性助手进行改进的贡献。请阅读CONTRIBUTING.md以获取所有信息。
许可证
本存储库的内容根据Apache 2.0许可授权。
可能包含在不同但兼容的许可下或来自不同版权所有者的组件。项目符合REUSE规范,这使得这些部分透明。您将在LICENSES目录中找到所有使用的许可。
本项目由OpenRail协会启动。欢迎您贡献!
项目详情
下载文件
下载适用于您平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分布
构建分布
compliance_assistant-1.0.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 890d98f06af4a13b439d1a5d9cf5fb7f4a74781efce47f491ad00c3dbe4d13d9 |
|
MD5 | fdbf3b87462b2b55b7cf43ffa8369d5e |
|
BLAKE2b-256 | 7b0f2800e1025421131343aea42823c35822740362298a79def3af456fb29902 |
compliance_assistant-1.0.0-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 772866f319fa245320b2ec97546b9691c3a5ce2207dc0b0ad0f683d3b717b5a7 |
|
MD5 | 783ea30e11e61056f82958fc56babd0e |
|
BLAKE2b-256 | 8fcba3468345a291af4929124ecdb9d632a1c2d4e58a980e79b72c9a35e3d95e |