@@ -426,23 +426,32 @@ workers0:
426426 }
427427
428428 provIndex := slices .IndexFunc (attachments , func (a attachment ) bool {
429- return descrType (a .descr ) == slsa02 . PredicateSLSAProvenance
429+ return strings . HasPrefix ( descrType (a .descr ), "https://slsa.dev/provenance/" )
430430 })
431431 if provIndex != - 1 {
432432 prov := attachments [provIndex ]
433+ predType := descrType (prov .descr )
433434 dt , err := content .ReadBlob (ctx , store , prov .descr )
434435 if err != nil {
435436 return errors .Errorf ("failed to read provenance %s: %v" , prov .descr .Digest , err )
436437 }
437- var pred provenancetypes.ProvenancePredicateSLSA02
438- if err := json .Unmarshal (dt , & pred ); err != nil {
438+ var pred * provenancetypes.ProvenancePredicateSLSA1
439+ if predType == slsa02 .PredicateSLSAProvenance {
440+ var pred02 * provenancetypes.ProvenancePredicateSLSA02
441+ if err := json .Unmarshal (dt , & pred02 ); err != nil {
442+ return errors .Errorf ("failed to unmarshal provenance %s: %v" , prov .descr .Digest , err )
443+ }
444+ pred = provenancetypes .ConvertSLSA02ToSLSA1 (pred02 )
445+ } else if err := json .Unmarshal (dt , & pred ); err != nil {
439446 return errors .Errorf ("failed to unmarshal provenance %s: %v" , prov .descr .Digest , err )
440447 }
441- for _ , m := range pred .Materials {
442- out .Materials = append (out .Materials , materialOutput {
443- URI : m .URI ,
444- Digests : digestSetToDigests (m .Digest ),
445- })
448+ if pred != nil {
449+ for _ , m := range pred .BuildDefinition .ResolvedDependencies {
450+ out .Materials = append (out .Materials , materialOutput {
451+ URI : m .URI ,
452+ Digests : digestSetToDigests (m .Digest ),
453+ })
454+ }
446455 }
447456 }
448457
0 commit comments