class Bundler::Audit::CLI
def check
def check environment = Bundler.load database = Database.new vulnerable = false database.check_bundle(environment) do |gem,advisory| vulnerable = true print_advisory gem, advisory end if vulnerable say "Unpatched versions found!", :red return -1 else say "No unpatched versions found", :green end end
def print_advisory(gem, advisory)
def print_advisory(gem, advisory) say "Name: ", :red say gem.name say "Version: ", :red say gem.version say "CVE: ", :red say advisory.cve say "Criticality: ", :red case advisory.criticality when :low then say "Low" when :medium then say "Medium", :yellow when :high then say "High", [:red, :bold] end say "URL: ", :red say advisory.url if options.verbose? say "Description:", :red say print_wrapped advisory.description, :indent => 2 say else say "Title: ", :red say advisory.title end unless advisory.patched_versions.empty? say "Solution: upgrade to ", :red say advisory.patched_versions.join(', ') else say "Solution: ", :red say "remove or disable this gem until a patch is available!", [:red, :bold] end say end
def version
def version database = Database.new puts "#{File.basename($0)} #{VERSION} (advisories: #{database.size})" end