@@ -152,6 +152,7 @@ export default class UpdateSecurityRelease extends SecurityRelease {
152
152
for ( const cve of cves ) {
153
153
const report = reports . find ( report => report . id === cve . reportId ) ;
154
154
report . cveIds = [ cve . cve_identifier ] ;
155
+ report . patchedVersions = cve . patchedVersions ;
155
156
}
156
157
}
157
158
@@ -219,12 +220,14 @@ Summary: ${summary}\n`,
219
220
220
221
if ( ! create ) continue ;
221
222
223
+ const { h1AffectedVersions, patchedVersions } =
224
+ await this . calculateVersions ( affectedVersions , supportedVersions ) ;
222
225
const body = {
223
226
data : {
224
227
type : 'cve-request' ,
225
228
attributes : {
226
229
team_handle : 'nodejs-team' ,
227
- versions : await this . formatAffected ( affectedVersions , supportedVersions ) ,
230
+ versions : h1AffectedVersions ,
228
231
metrics : [
229
232
{
230
233
vectorString : cvss_vector_string
@@ -246,7 +249,7 @@ Summary: ${summary}\n`,
246
249
continue ;
247
250
}
248
251
const { cve_identifier } = data . attributes ;
249
- cves . push ( { cve_identifier, reportId : id } ) ;
252
+ cves . push ( { cve_identifier, reportId : id , patchedVersions } ) ;
250
253
}
251
254
return cves ;
252
255
}
@@ -262,15 +265,23 @@ Summary: ${summary}\n`,
262
265
}
263
266
}
264
267
265
- async formatAffected ( affectedVersions , supportedVersions ) {
266
- const result = [ ] ;
268
+ async calculateVersions ( affectedVersions , supportedVersions ) {
269
+ const h1AffectedVersions = [ ] ;
270
+ const patchedVersions = [ ] ;
267
271
for ( const affectedVersion of affectedVersions ) {
268
272
const major = affectedVersion . split ( '.' ) [ 0 ] ;
269
273
const latest = supportedVersions . find ( ( v ) => v . major === Number ( major ) ) . version ;
270
274
const version = await this . cli . prompt (
271
275
`What is the affected version (<=) for release line ${ affectedVersion } ?` ,
272
276
{ questionType : 'input' , defaultAnswer : latest } ) ;
273
- result . push ( {
277
+
278
+ const nextPatchVersion = parseInt ( version . split ( '.' ) [ 2 ] ) + 1 ;
279
+ const patchedVersion = await this . cli . prompt (
280
+ `What is the patched version (>=) for release line ${ affectedVersion } ?` ,
281
+ { questionType : 'input' , defaultAnswer : nextPatchVersion } ) ;
282
+
283
+ patchedVersions . push ( patchedVersion ) ;
284
+ h1AffectedVersions . push ( {
274
285
vendor : 'nodejs' ,
275
286
product : 'node' ,
276
287
func : '<=' ,
@@ -279,6 +290,6 @@ Summary: ${summary}\n`,
279
290
affected : true
280
291
} ) ;
281
292
}
282
- return result ;
293
+ return { h1AffectedVersions , patchedVersions } ;
283
294
}
284
295
}
0 commit comments