Conversation
|
Claude finished @otavio's task in 5m 48s —— View job Code Review CompleteReviewed 2 files across code quality, security, testing, language patterns, and architecture. 1 inline issue posted (medium severity). The SBOM generation approach is solid — CycloneDX format, dual image+source scans, cosign OCI attachment, and release asset publishing all look correct. The The one issue flagged is that To request another review round, comment |
|
/review |
|
Claude finished @otavio's task in 3m 8s —— View job Code Review CompleteReviewed 2 files across code quality, security, testing, language patterns, and architecture. No issues found. The previous review's finding (workflow-level permissions too broad for PR builds in To request another review round, comment |
Generate CycloneDX SBOMs for all published Docker images and source code on every tagged release, satisfying EU CRA Art. 13(1). For docker-publish: scan each community service image and its source directory, attach SBOMs as OCI referrers via cosign, and upload them to the GitHub release. For build-agent: add a dedicated SBOM job for the agent container image plus a source-level SBOM from Go modules in the vendored tarball job. Permissions are set at job-level to avoid elevating PR builds. Fixes: shellhub-io/team#97
79228de to
29640e2
Compare
What
Every tagged release now generates CycloneDX SBOMs for all published Docker images and source code, attaches them to the GitHub release, and embeds them as OCI referrers on the container images.
Why
EU Cyber Resilience Act (Art. 13(1)) requires a machine-readable SBOM identifying top-level dependencies with each release. ShellHub had no SBOM generation.
Closes shellhub-io/team#97
Changes
release-sbomsjob. Same pattern applied to the enterprise API image.sbomjob scans the pushed multi-arch agent image and attaches the SBOM as an OCI referrer. Thevendored-tarballjob generates an additional source-level SBOM from Go modules. Both are included in the draft release.contents: write,packages: write, andid-token: writeat workflow level for release attachment, OCI push, and future cosign keyless signing.Testing
syft(vianix shell nixpkgs#syft) against dev images: API detected 99 Go modules + 26 Alpine packages, UI-React detected 1284 npm packages, agent detected 243 Go modules + 58 Alpine packages, agent source scan found 66 Go modules.cosign tree shellhubio/<service>:<tag>.