Skip to content

Commit 36ede4c

Browse files
committed
add missing cvss_v3 scores during github sync
1 parent 908512e commit 36ede4c

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

lib/github_advisory_sync.rb

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ def withdrawn?
226226
end
227227

228228
def cvss
229-
return "<FILL IN IF AVAILABLE>" if advisory["cvss"]["vectorString"].nil?
229+
return if advisory["cvss"]["vectorString"].nil?
230230

231231
advisory["cvss"]["score"].to_f
232232
end
@@ -245,6 +245,30 @@ def filename_for(package_name)
245245
File.join("gems", package_name, "#{primary_id}.yml")
246246
end
247247

248+
def update_file
249+
saved_data = YAML.load_file(rubysec_filename)
250+
251+
return if saved_data.key?("cvss_v3") || cvss.nil?
252+
253+
cvss_added = false
254+
File.open("#{rubysec_filename}.tmp", "w") do |f|
255+
IO.foreach(rubysec_filename) do |line|
256+
if (line.include?('unaffected_versions:') || line.include?('patched_versions:')) && !cvss_added
257+
f.write("cvss_v3: #{cvss}\n\n")
258+
cvss_added = true
259+
end
260+
f.write(line)
261+
end
262+
end
263+
264+
File.delete(rubysec_filename)
265+
File.rename("#{rubysec_filename}.tmp", rubysec_filename)
266+
267+
puts "Updated: #{rubysec_filename}"
268+
269+
rubysec_filename
270+
end
271+
248272
def write_file
249273
packages_to_write = package_names.filter { |name| !File.exist?(filename_for(name)) }
250274

0 commit comments

Comments
 (0)