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

Function Evaluate

app/cli/internal/policydevel/eval.go:70–91  ·  view source on GitHub ↗
(opts *EvalOptions, logger zerolog.Logger)

Source from the content-addressed store, hash-verified

68}
69
70func Evaluate(opts *EvalOptions, logger zerolog.Logger) (*EvalSummary, error) {
71 // 1. Create crafting schema
72 policies, err := createPolicies(opts.PolicyPath, opts.Inputs)
73 if err != nil {
74 return nil, err
75 }
76
77 // 2. Craft material with annotations
78 material, err := craftMaterial(opts.MaterialPath, opts.MaterialKind, &logger)
79 if err != nil {
80 return nil, err
81 }
82 material.Annotations = opts.Annotations
83
84 // 3. Verify material against policy
85 summary, err := verifyMaterial(policies, material, opts.MaterialPath, opts.Debug, opts.AllowedHostnames, opts.AttestationClient, opts.ControlPlaneConn, opts.ProjectName, opts.ProjectVersionName, &logger)
86 if err != nil {
87 return nil, err
88 }
89
90 return summary, nil
91}
92
93func createPolicies(policyPath string, inputs map[string]string) (*v1.Policies, error) {
94 // Check if the policy path already has a scheme (chainloop://, http://, https://, file://)

Callers 3

RunMethod · 0.92
TestEvaluateFunction · 0.85

Calls 3

createPoliciesFunction · 0.85
craftMaterialFunction · 0.85
verifyMaterialFunction · 0.85

Tested by 2

TestEvaluateFunction · 0.68