@@ -460,15 +460,22 @@ func (c *Controller) Solve(ctx context.Context, req *controlapi.SolveRequest) (*
460
460
var procs []llbsolver.Processor
461
461
462
462
if attrs , ok := attests ["sbom" ]; ok {
463
- src := attrs ["generator" ]
464
- if src == "" {
465
- return nil , errors .Errorf ("sbom generator cannot be empty" )
466
- }
467
- ref , err := reference .ParseNormalizedNamed (src )
468
- if err != nil {
469
- return nil , errors .Wrapf (err , "failed to parse sbom generator %s" , src )
463
+ var ref reference.Named
464
+ params := make (map [string ]string )
465
+ for k , v := range attrs {
466
+ if k == "generator" {
467
+ if v == "" {
468
+ return nil , errors .Errorf ("sbom generator cannot be empty" )
469
+ }
470
+ ref , err = reference .ParseNormalizedNamed (v )
471
+ if err != nil {
472
+ return nil , errors .Wrapf (err , "failed to parse sbom generator %s" , v )
473
+ }
474
+ ref = reference .TagNameOnly (ref )
475
+ } else {
476
+ params [k ] = v
477
+ }
470
478
}
471
- ref = reference .TagNameOnly (ref )
472
479
473
480
useCache := true
474
481
if v , ok := req .FrontendAttrs ["no-cache" ]; ok && v == "" {
@@ -480,7 +487,7 @@ func (c *Controller) Solve(ctx context.Context, req *controlapi.SolveRequest) (*
480
487
resolveMode = v
481
488
}
482
489
483
- procs = append (procs , proc .SBOMProcessor (ref .String (), useCache , resolveMode ))
490
+ procs = append (procs , proc .SBOMProcessor (ref .String (), useCache , resolveMode , params ))
484
491
}
485
492
486
493
if attrs , ok := attests ["provenance" ]; ok {
0 commit comments