MCPcopy Create free account
hub / github.com/chainloop-dev/chainloop / craftMaterial

Function craftMaterial

app/cli/internal/policydevel/eval.go:193–218  ·  view source on GitHub ↗
(materialPath, materialKind string, logger *zerolog.Logger)

Source from the content-addressed store, hash-verified

191}
192
193func craftMaterial(materialPath, materialKind string, logger *zerolog.Logger) (*v12.Attestation_Material, error) {
194 backend := &casclient.CASBackend{
195 Name: "backend",
196 MaxSize: 0,
197 Uploader: nil, // Skip uploads
198 }
199
200 // Explicit kind
201 if materialKind != "" {
202 kind, ok := v1.CraftingSchema_Material_MaterialType_value[materialKind]
203 if !ok {
204 return nil, fmt.Errorf("invalid material kind: %s", materialKind)
205 }
206 return craft(materialPath, v1.CraftingSchema_Material_MaterialType(kind), "material", backend, logger)
207 }
208
209 // Auto-detect kind
210 for _, kind := range v1.CraftingMaterialInValidationOrder {
211 m, err := craft(materialPath, kind, "auto-detected-material", backend, logger)
212 if err == nil {
213 return m, nil
214 }
215 }
216
217 return nil, fmt.Errorf("could not auto-detect material kind for: %s", materialPath)
218}
219
220func craft(materialPath string, kind v1.CraftingSchema_Material_MaterialType, name string, backend *casclient.CASBackend, logger *zerolog.Logger) (*v12.Attestation_Material, error) {
221 materialSchema := &v1.CraftingSchema_Material{

Callers 1

EvaluateFunction · 0.85

Calls 1

craftFunction · 0.85

Tested by

no test coverage detected