Merge pull request #4833 from crazy-max/provenance-infer-builder-id

solver: infer builder id from user input for provenance in build record
This commit is contained in:
Tõnis Tiigi
2024-04-12 14:41:46 -07:00
committed by GitHub

View File

@@ -22,6 +22,7 @@ import (
"github.com/moby/buildkit/exporter"
"github.com/moby/buildkit/exporter/containerimage/exptypes"
"github.com/moby/buildkit/frontend"
"github.com/moby/buildkit/frontend/attestations"
"github.com/moby/buildkit/frontend/gateway"
"github.com/moby/buildkit/identity"
"github.com/moby/buildkit/session"
@@ -210,6 +211,15 @@ func (s *Solver) recordBuildHistory(ctx context.Context, id string, req frontend
"capture-usage": "true",
}
// infer builder-id from user input if available
if attests, err := attestations.Parse(rec.FrontendAttrs); err == nil {
if prvAttrs, ok := attests["provenance"]; ok {
if builderID, ok := prvAttrs["builder-id"]; ok {
attrs["builder-id"] = builderID
}
}
}
makeProvenance := func(res solver.ResultProxy, cap *provenance.Capture) (*controlapi.Descriptor, func(), error) {
prc, err := NewProvenanceCreator(ctx2, cap, res, attrs, j, usage)
if err != nil {