@@ -35,24 +35,29 @@ type commentData struct {
35
35
DocsURL string
36
36
}
37
37
38
- type jsonResult struct {
38
+ // Result describes the result of a single rule evaluation.
39
+ type Result struct {
39
40
Message string `json:"msg"`
40
41
Metadata map [string ]interface {} `json:"metadata,omitempty"`
42
+ Outputs []string `json:"outputs,omitempty"`
41
43
}
42
44
43
- type jsonCheckResult struct {
44
- Filename string `json:"filename"`
45
- Successes []jsonResult `json:"successes"`
46
- Warnings []jsonResult `json:"warnings,omitempty"`
47
- Failures []jsonResult `json:"failures,omitempty"`
45
+ type CheckResult struct {
46
+ FileName string `json:"filename"`
47
+ Namespace string `json:"namespace"`
48
+ Successes int `json:"successes"`
49
+ Skipped []Result `json:"skipped,omitempty"`
50
+ Warnings []Result `json:"warnings,omitempty"`
51
+ Failures []Result `json:"failures,omitempty"`
52
+ Exceptions []Result `json:"exceptions,omitempty"`
48
53
}
49
54
50
55
type metricsSubmission struct {
51
- SourceID string `json:"sourceID"`
52
- Successes int `json:"successes,omitempty"`
53
- Warnings metricsSeverity `json:"warns,omitempty"`
54
- Failures metricsSeverity `json:"fails,omitempty"`
55
- Details []jsonCheckResult `json:"details,omitempty"`
56
+ SourceID string `json:"sourceID"`
57
+ Successes int `json:"successes,omitempty"`
58
+ Warnings metricsSeverity `json:"warns,omitempty"`
59
+ Failures metricsSeverity `json:"fails,omitempty"`
60
+ Details []CheckResult `json:"details,omitempty"`
56
61
}
57
62
58
63
type metricsSeverity struct {
@@ -111,10 +116,10 @@ func run() error {
111
116
var fails , warns []string
112
117
var successes int
113
118
for _ , result := range results {
114
- successes += len ( result .Successes )
119
+ successes += result .Successes
115
120
116
121
for _ , fail := range result .Failures {
117
- fails = append (fails , fmt .Sprintf ("%s - %s" , result .Filename , fail .Message ))
122
+ fails = append (fails , fmt .Sprintf ("%s - %s" , result .FileName , fail .Message ))
118
123
policyID , err := getPolicyIDFromMetadata (fail .Metadata , policyIDKey )
119
124
if err != nil {
120
125
continue
@@ -125,7 +130,7 @@ func run() error {
125
130
}
126
131
127
132
for _ , warn := range result .Warnings {
128
- warns = append (warns , fmt .Sprintf ("%s - %s" , result .Filename , warn .Message ))
133
+ warns = append (warns , fmt .Sprintf ("%s - %s" , result .FileName , warn .Message ))
129
134
policyID , err := getPolicyIDFromMetadata (warn .Metadata , policyIDKey )
130
135
if err != nil {
131
136
continue
@@ -264,7 +269,7 @@ func runConftestPull(url string) error {
264
269
return nil
265
270
}
266
271
267
- func runConftestTest () ([]jsonCheckResult , error ) {
272
+ func runConftestTest () ([]CheckResult , error ) {
268
273
args := []string {"test" , "--no-color" , "--output" , "json" }
269
274
flags := getFlagsFromEnv ()
270
275
args = append (args , flags ... )
@@ -274,9 +279,9 @@ func runConftestTest() ([]jsonCheckResult, error) {
274
279
cmd := exec .Command ("conftest" , args ... )
275
280
out , _ := cmd .CombinedOutput () // intentionally ignore errors so we can parse the results
276
281
277
- var results []jsonCheckResult
282
+ var results []CheckResult
278
283
if err := json .Unmarshal (out , & results ); err != nil {
279
- return nil , fmt .Errorf ("%s" , string (out ))
284
+ return nil , fmt .Errorf ("%s -- error is: %v " , string (out ), err )
280
285
}
281
286
282
287
return results , nil
0 commit comments