class GemsStatus::ScmCheckMessages

Constants

MAX_RETRIES

Public Instance Methods

check_messages(name, source_repo, message_checker, origin, counter = 0) click to toggle source
# File lib/gems-status/checkers/scm_check_messages.rb, line 8
def check_messages(name, source_repo, message_checker, origin, counter = 0)
  begin
    messages = Timeout::timeout(300) {
      messages(name, source_repo)
    }
    return security_alerts(name, messages, message_checker, origin)
  rescue => e
    if counter == MAX_RETRIES
      Utils::log_error name, "There was a problem checking out #{source_repo} #{e}"
      return {}
    else
      Utils::log_debug "There was a problem checking out  #{source_repo} #{e}: Trying it again..."
      return check_messages(name, source_repo, message_checker, origin, counter + 1)
    end
  end
end

Private Instance Methods

commit_key(commit) click to toggle source
# File lib/gems-status/checkers/scm_check_messages.rb, line 44
def commit_key(commit)
  raise NotImplementedError
end
date(commit) click to toggle source
# File lib/gems-status/checkers/scm_check_messages.rb, line 56
def date(commit)
  raise NotImplementedError
end
message(commit) click to toggle source
# File lib/gems-status/checkers/scm_check_messages.rb, line 48
def message(commit)
  raise NotImplementedError 
end
messages(name, source_repo) click to toggle source
# File lib/gems-status/checkers/scm_check_messages.rb, line 52
def messages(name, source_repo)
  raise NotImplementedError 
end
security_alerts(name, commits, message_checker, origin) click to toggle source
# File lib/gems-status/checkers/scm_check_messages.rb, line 27
def security_alerts(name, commits, message_checker, origin)
  results = {}
  commits.each do |commit|
    if message_checker.check_message?(message(commit))
      Utils::log_debug "#{message(commit)}"
      key = "#{name}_#{origin}_#{commit_key(commit)}"
      if !key
        Utils::log_error "no key for #{name}"
        next
      end
      Utils::log_debug "security key: #{key}"
      results[key] = SecurityAlert.new(message(commit), date(commit))
    end
  end
  return results
end