@@ -49,10 +49,11 @@ type SarifReportRunToolDriverRuleDescription struct {
49
49
Text string `json:"text,omitempty"`
50
50
}
51
51
type SarifReportRunResult struct {
52
- RuleId string `json:"ruleId"`
53
- Level string `json:"level"`
54
- Message SarifReportRunResultMessage `json:"message"`
55
- Locations []SarifReportRunResultLocation `json:"locations,omitempty"`
52
+ RuleId string `json:"ruleId"`
53
+ Level string `json:"level"`
54
+ Message SarifReportRunResultMessage `json:"message"`
55
+ Locations []SarifReportRunResultLocation `json:"locations,omitempty"`
56
+ PartialFingerprints map [string ]string `json:"partialFingerprints,omitempty"`
56
57
}
57
58
type SarifReportRunResultMessage struct {
58
59
Text string `json:"text"`
@@ -98,6 +99,7 @@ func FromContainerScan(containerScanReport containerscan.ContainerScan) (SarifRe
98
99
})
99
100
containerImageNameToPathUri := toPathUri (containerScanReport .ImageName )
100
101
var rulesMap = map [string ]SarifReportRunToolDriverRule {}
102
+ var partialFingerPrintsMap = map [string ]string {}
101
103
//Trivy Vulnerabilities
102
104
for _ , vulnerability := range containerScanReport .Vulnerabilities {
103
105
var level string
@@ -152,6 +154,11 @@ func FromContainerScan(containerScanReport containerscan.ContainerScan) (SarifRe
152
154
},
153
155
},
154
156
})
157
+ sarifRunResult .PartialFingerprints = make (map [string ]string )
158
+ if _ , exists := partialFingerPrintsMap [vulnerability .VulnerabilityId ]; ! exists {
159
+ partialFingerPrintsMap [vulnerability .VulnerabilityId ] = vulnerability .VulnerabilityId
160
+ sarifRunResult .PartialFingerprints [vulnerability .VulnerabilityId ] = vulnerability .VulnerabilityId
161
+ }
155
162
sarifReportRun .Results = append (sarifReportRun .Results , sarifRunResult )
156
163
}
157
164
@@ -209,6 +216,11 @@ func FromContainerScan(containerScanReport containerscan.ContainerScan) (SarifRe
209
216
},
210
217
},
211
218
})
219
+ sarifRunResult .PartialFingerprints = make (map [string ]string )
220
+ if _ , exists := partialFingerPrintsMap [bestPracticeViolation .Code ]; ! exists {
221
+ partialFingerPrintsMap [bestPracticeViolation .Code ] = bestPracticeViolation .Code
222
+ sarifRunResult .PartialFingerprints [bestPracticeViolation .Code ] = bestPracticeViolation .Code
223
+ }
212
224
sarifReportRun .Results = append (sarifReportRun .Results , sarifRunResult )
213
225
}
214
226
sarifReportRun .Tool .Driver = sarifReportRunDriver
0 commit comments