ci: attach provenance and SBOM attestations to the published container - #9398
Merged
Conversation
lstein
approved these changes
Aug 7, 2026
lstein
left a comment
Collaborator
There was a problem hiding this comment.
Thank you for your contribution.
lstein
enabled auto-merge (squash)
August 7, 2026 17:00
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.
Hi, and thanks for InvokeAI.
.github/workflows/build-container.ymlpublishes the container, but the pushed manifest carries no provenance or SBOM attestation. Someone pulling it cannot check that it was built by this workflow, from this repository, at that tag.The SBOM half is the one I would argue for first here. An InvokeAI image is a large, opinionated stack — a specific torch build, CUDA or ROCm bits, and a long tail of Python packages pinned to work together. That combination is the whole value of using the image rather than installing locally, and right now the only way to see exactly what a given tag contains is to run it and inspect.
sbom: truepublishes that inventory next to the image.The change is two lines on the build step:
BuildKit attaches both to the image manifest, so they travel with the image. No permissions change is needed — nothing has to gain
id-token, and your existing conditional push and cache configuration are untouched.Two caveats:
mode=maxrecords build arguments (provenance: truegives a smaller record if any have ever been sensitive), and attestations add an extra manifest to the index, which the registry supports.No SLSA level claimed — the attestation is what BuildKit produces.
Disclosure: I used AI assistance to help spot this and prepare the change, and I read the workflow myself.