@@ -19,11 +19,10 @@ import (
1919 "context"
2020 "fmt"
2121
22+ "github.com/chainloop-dev/chainloop/app/cli/internal/policydevel"
2223 pb "github.com/chainloop-dev/chainloop/app/controlplane/api/controlplane/v1"
2324 schemaapi "github.com/chainloop-dev/chainloop/app/controlplane/api/workflowcontract/v1"
2425 attestationapi "github.com/chainloop-dev/chainloop/pkg/attestation/crafter/api/attestation/v1"
25- "github.com/chainloop-dev/chainloop/pkg/attestation/crafter/materials"
26- "github.com/chainloop-dev/chainloop/pkg/casclient"
2726 "github.com/chainloop-dev/chainloop/pkg/policies"
2827)
2928
@@ -107,7 +106,7 @@ func (action *PolicyEvaluate) Run(ctx context.Context) (*attestationapi.PolicyEv
107106 // 5. Evaluate: either material-based or generic
108107 if action .opts .MaterialPath != "" {
109108 // Material-based evaluation
110- material , err := action . craftMaterial ( ctx )
109+ material , err := policydevel . CraftMaterial ( action . opts . MaterialPath , action . opts . Kind , & action . Logger )
111110 if err != nil {
112111 return nil , fmt .Errorf ("crafting material: %w" , err )
113112 }
@@ -137,43 +136,3 @@ func (action *PolicyEvaluate) Run(ctx context.Context) (*attestationapi.PolicyEv
137136
138137 return policyEv , nil
139138}
140-
141- func (action * PolicyEvaluate ) craftMaterial (ctx context.Context ) (* attestationapi.Attestation_Material , error ) {
142- backend := & casclient.CASBackend {
143- Name : "backend" ,
144- MaxSize : 0 ,
145- Uploader : nil , // Skip uploads
146- }
147-
148- // Explicit kind
149- if action .opts .Kind != "" {
150- kind , ok := schemaapi .CraftingSchema_Material_MaterialType_value [action .opts .Kind ]
151- if ! ok {
152- return nil , fmt .Errorf ("invalid material kind: %s" , action .opts .Kind )
153- }
154- return action .craft (ctx , schemaapi .CraftingSchema_Material_MaterialType (kind ), "material" , backend )
155- }
156-
157- // Auto-detect kind
158- for _ , kind := range schemaapi .CraftingMaterialInValidationOrder {
159- m , err := action .craft (ctx , kind , "auto-detected-material" , backend )
160- if err == nil {
161- return m , nil
162- }
163- }
164-
165- return nil , fmt .Errorf ("could not auto-detect material kind for: %s" , action .opts .MaterialPath )
166- }
167-
168- func (action * PolicyEvaluate ) craft (ctx context.Context , kind schemaapi.CraftingSchema_Material_MaterialType , name string , backend * casclient.CASBackend ) (* attestationapi.Attestation_Material , error ) {
169- materialSchema := & schemaapi.CraftingSchema_Material {
170- Type : kind ,
171- Name : name ,
172- }
173-
174- m , err := materials .Craft (ctx , materialSchema , action .opts .MaterialPath , backend , nil , & action .Logger )
175- if err != nil {
176- return nil , fmt .Errorf ("failed to craft material (kind=%s): %w" , kind .String (), err )
177- }
178- return m , nil
179- }
0 commit comments