@@ -15,7 +15,7 @@ export async function generateSummary(opts: ActionInputs, data: Report, filters?
15
15
core . summary . addHeading ( `Scan Results for ${ opts . overridePullString || opts . imageTag } ` ) ;
16
16
17
17
addVulnTableToSummary ( filteredData , filters ?. minSeverity ) ;
18
- addVulnsByLayerTableToSummary ( filteredData ) ;
18
+ addVulnsByLayerTableToSummary ( filteredData , filters ?. minSeverity ) ;
19
19
20
20
if ( ! opts . standalone ) {
21
21
addReportToSummary ( data ) ;
@@ -24,6 +24,8 @@ export async function generateSummary(opts: ActionInputs, data: Report, filters?
24
24
await core . summary . write ( { overwrite : true } ) ;
25
25
}
26
26
27
+ const SEVERITY_ORDER : Severity [ ] = [ "critical" , "high" , "medium" , "low" , "negligible" ] ;
28
+
27
29
const SEVERITY_LABELS : Record < Severity , string > = {
28
30
critical : "🟣 Critical" ,
29
31
high : "🔴 High" ,
@@ -65,10 +67,7 @@ function addVulnTableToSummary(
65
67
minSeverity ?: Severity
66
68
) {
67
69
const pkgs = data . result . packages ;
68
- // Lista completa de severidades en orden, de mayor a menor
69
- const SEVERITY_ORDER : Severity [ ] = [ "critical" , "high" , "medium" , "low" , "negligible" ] ;
70
70
71
- // Solo mostramos las severidades >= minSeverity
72
71
const visibleSeverities = SEVERITY_ORDER . filter ( sev =>
73
72
! minSeverity || isSeverityGte ( sev , minSeverity )
74
73
) ;
@@ -92,11 +91,15 @@ function addVulnTableToSummary(
92
91
] ) ;
93
92
}
94
93
95
- function addVulnsByLayerTableToSummary ( data : Report ) {
94
+ function addVulnsByLayerTableToSummary ( data : Report , minSeverity ?: Severity ) {
96
95
if ( ! Array . isArray ( data . result . layers ) || data . result . layers . length === 0 ) {
97
96
return ;
98
97
}
99
98
99
+ const visibleSeverities = SEVERITY_ORDER . filter ( sev =>
100
+ ! minSeverity || isSeverityGte ( sev , minSeverity )
101
+ ) ;
102
+
100
103
core . summary . addHeading ( `Package vulnerabilities per layer` , 2 ) ;
101
104
102
105
let packagesPerLayer : { [ key : string ] : Package [ ] } = { } ;
@@ -138,32 +141,22 @@ function addVulnsByLayerTableToSummary(data: Report) {
138
141
{ data : 'Type' , header : true } ,
139
142
{ data : 'Version' , header : true } ,
140
143
{ data : 'Suggested fix' , header : true } ,
141
- { data : '🟣 Critical' , header : true } ,
142
- { data : '🔴 High' , header : true } ,
143
- { data : '🟠 Medium' , header : true } ,
144
- { data : '🟡 Low' , header : true } ,
145
- { data : '⚪ Negligible' , header : true } ,
144
+ ...visibleSeverities . map ( s => ( { data : SEVERITY_LABELS [ s ] , header : true } ) ) ,
146
145
{ data : 'Exploit' , header : true } ,
147
146
] ,
148
147
...orderedPackagesBySeverity . map ( layerPackage => {
149
- let criticalVulns = layerPackage . vulns ?. filter ( vuln => vuln . severity . value . toLowerCase ( ) == 'critical' ) . length ?? 0 ;
150
- let highVulns = layerPackage . vulns ?. filter ( vuln => vuln . severity . value . toLowerCase ( ) == 'high' ) . length ?? 0 ;
151
- let mediumVulns = layerPackage . vulns ?. filter ( vuln => vuln . severity . value . toLowerCase ( ) == 'medium' ) . length ?? 0 ;
152
- let lowVulns = layerPackage . vulns ?. filter ( vuln => vuln . severity . value . toLowerCase ( ) == 'low' ) . length ?? 0 ;
153
- let negligibleVulns = layerPackage . vulns ?. filter ( vuln => vuln . severity . value . toLowerCase ( ) == 'negligible' ) . length ?? 0 ;
154
- let exploits = layerPackage . vulns ?. filter ( vuln => vuln . exploitable ) . length ?? 0 ;
155
148
return [
156
149
{ data : layerPackage . name } ,
157
150
{ data : layerPackage . type } ,
158
151
{ data : layerPackage . version } ,
159
152
{ data : layerPackage . suggestedFix || "" } ,
160
- { data : criticalVulns . toString ( ) } ,
161
- { data : highVulns . toString ( ) } ,
162
- { data : mediumVulns . toString ( ) } ,
163
- { data : lowVulns . toString ( ) } ,
164
- { data : negligibleVulns . toString ( ) } ,
165
- { data : exploits . toString ( ) } ,
166
- ]
153
+ ... visibleSeverities . map ( s =>
154
+ ` ${
155
+ layerPackage . vulns ?. filter ( vuln => vuln . severity . value . toLowerCase ( ) === s ) . length ?? 0
156
+ } `
157
+ ) ,
158
+ ` ${ layerPackage . vulns ?. filter ( vuln => vuln . exploitable ) . length ?? 0 } ` ,
159
+ ] ;
167
160
} )
168
161
] ) ;
169
162
} ) ;
0 commit comments