class Guard::BundlerAudit

Public Instance Methods

run_all() click to toggle source

Guard callback

# File lib/guard/bundler_audit.rb, line 19
def run_all
  audit
end
run_on_changes(paths) click to toggle source

Guard callback

# File lib/guard/bundler_audit.rb, line 26
def run_on_changes paths
  audit
end
start() click to toggle source

Guard callback

# File lib/guard/bundler_audit.rb, line 11
def start
  ::Bundler::Audit::Database.update!
  audit
end

Private Instance Methods

audit() click to toggle source

Scans for vulnerabilities and reports them.

# File lib/guard/bundler_audit.rb, line 35
def audit
  res = ::Bundler::Audit::Scanner.new.scan.to_a.map do |vuln|
    case vuln
    when ::Bundler::Audit::Scanner::InsecureSource
      insecure_source_message vuln
    when ::Bundler::Audit::Scanner::UnpatchedGem
      insecure_gem_message vuln
    else
      insecure_message vuln
    end
  end
  if res.any?
    message = "Vulnerabilities found:\n" + res.join("\n")
    color = :red
    notify message
  else
    message = "No vulnerabilities found."
    color = :green
  end
  UI.info(UI.send(:color, message, color))
end
insecure_gem_message(vuln) click to toggle source
# File lib/guard/bundler_audit.rb, line 69
def insecure_gem_message vuln
  "Insecure gem found: #{vuln.gem} #{vuln.advisory} #{vuln.advisory.url}"
end
insecure_message(vuln) click to toggle source
# File lib/guard/bundler_audit.rb, line 61
def insecure_message vuln
  "Vulnerability found: #{vuln.name}"
end
insecure_source_message(vuln) click to toggle source
# File lib/guard/bundler_audit.rb, line 65
def insecure_source_message vuln
  "Insecure source URI found: #{vuln.source}"
end
notify(message) click to toggle source
# File lib/guard/bundler_audit.rb, line 57
def notify message
  ::Guard::Notifier.notify(message, title: message, image: :pending)
end