@@ -341,7 +341,9 @@ def first_patched_versions_for(package)
341
341
first_patched_versions = [ ]
342
342
343
343
vulnerabilities . each do |v |
344
- if v [ 'package' ] [ 'name' ] == package . name && v [ 'firstPatchedVersion' ]
344
+ if v [ 'package' ] [ 'name' ] == package . name &&
345
+ v [ 'firstPatchedVersion' ] &&
346
+ v [ 'firstPatchedVersion' ] [ 'identifier' ]
345
347
first_patched_versions << v [ 'firstPatchedVersion' ] [ 'identifier' ]
346
348
end
347
349
end
@@ -353,11 +355,13 @@ def patched_versions_for(package)
353
355
first_patched_versions = first_patched_versions_for ( package )
354
356
patched_versions = [ ]
355
357
356
- first_patched_versions [ 0 ..-2 ] . each do |version |
357
- patched_versions << "~> #{ version } "
358
- end
358
+ if !first_patched_versions . empty?
359
+ first_patched_versions [ 0 ..-2 ] . each do |version |
360
+ patched_versions << "~> #{ version } "
361
+ end
359
362
360
- patched_versions << ">= #{ first_patched_versions . last } "
363
+ patched_versions << ">= #{ first_patched_versions . last } "
364
+ end
361
365
362
366
return patched_versions
363
367
end
@@ -371,15 +375,23 @@ def create(package)
371
375
"unaffected_versions" => [ "<OPTIONAL: FILL IN SEE BELOW>" ]
372
376
)
373
377
378
+ patched_versions = patched_versions_for ( package )
379
+
380
+ if !patched_versions . empty?
381
+ new_data [ 'patched_versions' ] = patched_versions
382
+ else
383
+ new_data [ 'notes' ] = "Never patched"
384
+ end
385
+
386
+ # populate the related information
387
+ new_data [ "related" ] = {
388
+ "url" => advisory [ "references" ]
389
+ }
390
+
374
391
FileUtils . mkdir_p ( File . dirname ( filename_to_write ) )
375
392
File . open ( filename_to_write , "w" ) do |file |
376
393
# create an automatically generated advisory yaml file
377
- file . write new_data . merge (
378
- "patched_versions" => patched_versions_for ( package ) ,
379
- "related" => {
380
- "url" => advisory [ "references" ]
381
- }
382
- ) . to_yaml
394
+ file . write new_data . to_yaml
383
395
384
396
# The data we just wrote is incomplete,
385
397
# and therefore should not be committed as is
0 commit comments