23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/dependency_spy/formatters/text.rb', line 23
def self.format(manifests, severity_threshold = nil)
manifests_text = manifests.map do |manifest|
= "#{manifest.platform}: #{manifest.kind} ~> #{manifest.path} "
manifest_body = manifest.dependencies.map do |package|
next unless package.vulnerabilities.any?
= " Vulnerable: #{package.name}/#{package.type}:#{package.version}"
package_body = package.vulnerabilities.map do |vuln|
body = ''
body += " Title: #{vuln.title}\n"
body += " Severity: #{(vuln.severity || 'unknown').capitalize}\n"
body += " Source: #{vuln.source_url}\n"
body += " Identifier: #{vuln.id}\n\n"
if severity_threshold && DependencySpy::Helper.severity_above_threshold?(vuln.severity, severity_threshold)
body.red
else
body
end
end
"#{}\n#{package_body.join("\n")}"
end
next unless manifest_body.any?
"#{}\n#{manifest_body.reject(&:nil?).join("\n")}"
end
if manifests_text.any?
manifests_text.join("\n")
else
'No known vulnerabilities were found in your dependencies.'
end
end
|