• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mindersec / minder / 18851897204

27 Oct 2025 06:30PM UTC coverage: 57.992%. First build
18851897204

Pull #5945

github

web-flow
Merge 8c27a6582 into a3d4e9461
Pull Request #5945: add claude md

3 of 16 new or added lines in 3 files covered. (18.75%)

18866 of 32532 relevant lines covered (57.99%)

36.17 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

45.95
/internal/engine/eval/eval.go
1
// SPDX-FileCopyrightText: Copyright 2023 The Minder Authors
2
// SPDX-License-Identifier: Apache-2.0
3

4
// Package eval provides necessary interfaces and implementations for evaluating
5
// rules.
6
package eval
7

8
import (
9
        "context"
10
        "errors"
11
        "fmt"
12

13
        "github.com/mindersec/minder/internal/engine/eval/homoglyphs/application"
14
        "github.com/mindersec/minder/internal/engine/eval/jq"
15
        "github.com/mindersec/minder/internal/engine/eval/rego"
16
        "github.com/mindersec/minder/internal/engine/eval/trusty"
17
        "github.com/mindersec/minder/internal/engine/eval/vulncheck"
18
        minderv1 "github.com/mindersec/minder/pkg/api/protobuf/go/minder/v1"
19
        "github.com/mindersec/minder/pkg/engine/v1/interfaces"
20
)
21

22
// NewRuleEvaluator creates a new rule data evaluator
23
func NewRuleEvaluator(
24
        ctx context.Context,
25
        ruletype *minderv1.RuleType,
26
        provider interfaces.Provider,
27
        opts ...interfaces.Option,
28
) (interfaces.Evaluator, error) {
13✔
29
        e := ruletype.Def.GetEval()
13✔
30
        if e == nil {
15✔
31
                return nil, fmt.Errorf("rule type missing eval configuration")
2✔
32
        }
2✔
33

34
        // TODO: make this more generic and/or use constants
35
        // Note that the JQ and Rego evaluators get the data through ingestion.
36
        switch ruletype.Def.Eval.Type {
11✔
37
        case "jq":
5✔
38
                if ruletype.Def.Eval.GetJq() == nil {
6✔
39
                        return nil, fmt.Errorf("rule type engine missing jq configuration")
1✔
40
                }
1✔
41
                return jq.NewJQEvaluator(e.GetJq(), opts...)
4✔
42
        case rego.RegoEvalType:
5✔
43
                // Add short_failure_message as an option if available
5✔
44
                if ruletype.ShortFailureMessage != "" {
5✔
NEW
45
                        opts = append(opts, rego.WithShortFailureMessage(ruletype.ShortFailureMessage))
×
NEW
46
                }
×
47
                return rego.NewRegoEvaluator(e.GetRego(), opts...)
5✔
48
        case vulncheck.VulncheckEvalType:
×
49
                client, err := interfaces.As[vulncheck.GitHubRESTAndPRClient](provider)
×
50
                if err != nil {
×
51
                        return nil, errors.New("provider does not implement github trait")
×
52
                }
×
53
                return vulncheck.NewVulncheckEvaluator(client, opts...)
×
54
        case trusty.TrustyEvalType:
×
55
                client, err := interfaces.As[interfaces.GitHubIssuePRClient](provider)
×
56
                if err != nil {
×
57
                        return nil, errors.New("provider does not implement github trait")
×
58
                }
×
59
                return trusty.NewTrustyEvaluator(ctx, client, opts...)
×
60
        case application.HomoglyphsEvalType:
×
61
                client, err := interfaces.As[interfaces.GitHubIssuePRClient](provider)
×
62
                if err != nil {
×
63
                        return nil, errors.New("provider does not implement git trait")
×
64
                }
×
65
                return application.NewHomoglyphsEvaluator(ctx, e.GetHomoglyphs(), client, opts...)
×
66
        default:
1✔
67
                return nil, fmt.Errorf("unsupported rule type engine: %s", ruletype.Def.Eval.Type)
1✔
68
        }
69
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc