class Bundler::Audit::CLI

Constants

CRITICALITY_MAP

Public Instance Methods

check() click to toggle source
# File lib/bundler/audit/cli.rb, line 38
def check
  begin
    scanner  = Scanner.new
  rescue ArgumentError
    print_setup_instructions
    exit 1
  end

  # attempt update the database before doing a scan
  scanner.database.update!

  unpatched_versions = false
  insecure_sources = false
  scanner.scan(:ignore => options.ignore) do |result|

    case result
    when Scanner::InsecureSource
    insecure_sources = true
      print_warning "Insecure Source URI found: #{result.source}"
    when Scanner::UnpatchedGem
      unpatched_versions = true
      print_advisory result.gem, result.advisory
    end
  end

  if unpatched_versions
    say "Unpatched versions found!", :red
  else
    say "No unpatched versions found", :green
  end

  if insecure_sources
    say "Insecure sources found!", :red
  else
    say "No insecure sources found", :green
  end

  if unpatched_versions || insecure_sources
    exit 1
  end
end
update() click to toggle source
# File lib/bundler/audit/cli.rb, line 81
def update
  say "Updating ruby-advisory-db ..."

  Database.update!
  puts "ruby-advisory-db: #{Database.new.size} advisories"
end
version() click to toggle source
# File lib/bundler/audit/cli.rb, line 89
def version
  cmd = File.basename($0)
  advisories = nil
  begin
    database = Database.new
    advisories = " (advisories: #{database.size})"
  rescue ArgumentError
    # Don't have a database yet.
  end

  say "#{cmd} #{VERSION}#{advisories}", :bold
  if advisories.nil?
    print_setup_instructions
    exit 1
  end
end

Protected Instance Methods

print_advisory(gem, advisory) click to toggle source
print_advisory_details(advisory) click to toggle source
print_advisory_solution(advisory) click to toggle source
print_affected_gem(gem) click to toggle source
print_setup_instructions() click to toggle source
print_warning(message) click to toggle source
say(message="", color=nil) click to toggle source
Calls superclass method
# File lib/bundler/audit/cli.rb, line 108
def say(message="", color=nil)
  color = nil unless $stdout.tty?
  super(message.to_s, color)
end