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

Function parseContractV2

app/cli/pkg/action/attestation_init.go:513–538  ·  view source on GitHub ↗

parseContractV2 attempts to parse a raw contract as V2 schema

(rawContract *pb.WorkflowContractVersionItem_RawBody)

Source from the content-addressed store, hash-verified

511
512// parseContractV2 attempts to parse a raw contract as V2 schema
513func parseContractV2(rawContract *pb.WorkflowContractVersionItem_RawBody) *v1.CraftingSchemaV2 {
514 if rawContract == nil {
515 return nil
516 }
517
518 rawFormat := func() unmarshal.RawFormat {
519 switch rawContract.GetFormat() {
520 case pb.WorkflowContractVersionItem_RawBody_FORMAT_JSON:
521 return unmarshal.RawFormatJSON
522 case pb.WorkflowContractVersionItem_RawBody_FORMAT_YAML:
523 return unmarshal.RawFormatYAML
524 case pb.WorkflowContractVersionItem_RawBody_FORMAT_CUE:
525 return unmarshal.RawFormatCUE
526 default:
527 return unmarshal.RawFormatYAML
528 }
529 }()
530
531 schemaV2 := &v1.CraftingSchemaV2{}
532 if err := unmarshal.FromRaw(rawContract.GetBody(), rawFormat, schemaV2, true); err != nil {
533 // If V2 parsing fails, return nil
534 return nil
535 }
536
537 return schemaV2
538}

Callers 2

RunMethod · 0.85
TestParseContractV2Function · 0.85

Calls 3

FromRawFunction · 0.92
GetFormatMethod · 0.80
GetBodyMethod · 0.45

Tested by 1

TestParseContractV2Function · 0.68