Building a package¶
bomify build pulls every component a CycloneDX SBOM describes, through
the plugin for each component's purl type, and records the SBOM as the
build.
1. Start from an SBOM¶
Each component needs a purl:
sbom.json
{
"bomFormat": "CycloneDX",
"specVersion": "1.5",
"components": [
{
"type": "container",
"name": "nginx",
"version": "1.27",
"purl": "pkg:oci/nginx@1.27?repository_url=docker.io/library/nginx"
},
{
"type": "file",
"name": "config",
"version": "1.0",
"purl": "pkg:generic/config@1.0?download_url=https://example.com/config-1.0.tar.gz"
}
]
}
Or generate one from a Helm chart.
2. Check it without downloading¶
Each plugin cheaply confirms its component is reachable and authorized. Nothing is recorded.
3. Build and tag¶
A component whose SHA-256 doesn't match the SBOM fails the build.