Repository navigation
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved identity, compatibility, annotation-preservation, and HTTP error-handling issues can lose metadata or abort collection.
5 open issues
Preserve legacy crate repositories during dependency selection · New Recover normalized Cargo versions from repository suffixes · New Preserve crate metadata alongside generated repository entries · New Retry truncated HTTP responses without aborting cache generation · New Preserve Cargo.lock metadata when using deps JSON · New
What changed in this PR
Adds manifest-first Rust license collection to the Bazel SBOM pipeline, addressing issue #26.
Changes:
- Passes repository-associated manifests as declared action inputs.
- Validates crate identity and records license origins or unresolved reasons.
- Adds restricted exact-version API fallback, rate limiting, retries, and regression tests.
| File | Description |
|---|---|
| tests/test_sbom_generator.py | Tests repository-cache license precedence. |
| tests/test_generate_crates_metadata_cache.py | Tests manifest collection and API handling. |
| scripts/generate_crates_metadata_cache.py | Implements manifest-first metadata collection. |
| README.md | Documents collection behavior and limitations. |
| internal/rules.bzl | Passes manifests and dependency data to collection. |
| internal/providers.bzl | Adds manifest propagation data. |
| internal/generator/sbom_generator.py | Prefers repository-specific cache entries. |
| internal/aspect.bzl | Collects and propagates crate manifests. |
| defs.bzl | Updates collection option documentation. |
Review effort: Balanced
nicu1989
force-pushed
the
nicu1989_sbom_manifest_licenses
branch
from
October 21, 2026 12:32
c01c6e9 to
44d7e2b
Compare
nicu1989
force-pushed
the
nicu1989_sbom_manifest_licenses
branch
from
October 21, 2026 13:03
44d7e2b to
e18c5cf
Compare
nicu1989
force-pushed
the
nicu1989_sbom_manifest_licenses
branch
from
October 21, 2026 13:42
e18c5cf to
e3b81ec
Compare
nicu1989
force-pushed
the
nicu1989_sbom_manifest_licenses
branch
from
October 21, 2026 20:00
e3b81ec to
a9fc0dd
Compare
nicu1989
force-pushed
the
nicu1989_sbom_manifest_licenses
branch
from
October 22, 2026 07:05
a9fc0dd to
db6a4bf
Compare
nicu1989
force-pushed
the
nicu1989_sbom_manifest_licenses
branch
from
October 22, 2026 08:17
db6a4bf to
b98d2ce
Compare
Pass selected Cargo.toml files to the metadata collector. Check crate identity before using the declared license. Fall back to exact-version API data for confirmed crates.io sources. Record license sources and unresolved reasons. Rate-limit API requests and retry temporary failures. Signed-off-by: Nicolae Dicu <nicolae.dicu.ext@qorix.ai>
nicu1989
force-pushed
the
nicu1989_sbom_manifest_licenses
branch
from
October 22, 2026 09:21
b98d2ce to
c3c336f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Pass selected
Cargo.tomlfiles to the metadata collector.Check crate identity before using the declared license.
Fall back to exact-version API data for confirmed
crates.iosources.Record license sources and unresolved reasons.
Rate-limit API requests and retry temporary failures.
Closes: #26