Skip to content

add cyclonedx sbom from lock or release - #3

Draft
timkpaine wants to merge 1 commit into
mainfrom
tkp/sbom
Draft

add cyclonedx sbom from lock or release#3
timkpaine wants to merge 1 commit into
mainfrom
tkp/sbom

Conversation

@timkpaine

Copy link
Copy Markdown
Member

A software bill of materials is a direct projection of a lock — the lock already pins every conda package with its exact version, build, and content hash, so the SBOM is a faithful, lossless transform.

nepenthe sbom --lock app.lock                       # from a local lock
nepenthe sbom --env ccrt --registry file:///srv/reg # from a published release
nepenthe sbom --lock app.lock -o app.cdx.json       # to a file
  • sbom module: to_cyclonedx(&LockFile) -> CycloneDX 1.5 JSON. One component per distinct conda package (deduped across environments/platforms), each with a conda purl (pkg:conda/<name>@<version>?build=&subdir=), a SHA-256 hash, and its license — all read straight from the lock.
  • Deterministic: components are keyed and sorted by purl, and no generation timestamp is emitted, so the same lock always produces byte-identical output (a useful property to attest, and it makes the SBOM diffable).
  • CLI: mirrors the manifest command's lock-or-registry resolution; writes to --output or stdout.

@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown

Test Results

180 tests  +2   180 ✅ +2   3s ⏱️ -1s
  5 suites ±0     0 💤 ±0 
  2 files   ±0     0 ❌ ±0 

Results for commit 9d9e8b2. ± Comparison against base commit e431b65.

♻️ This comment has been updated with latest results.

Signed-off-by: Tim Paine <3105306+timkpaine@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant