class Travis::CLI::Requests

def run

def run
  requests = repository.requests
  requests = requests[0, Integer(limit)] if limit
  requests.each do |request|
    style ||= :success if request.accepted?
    style ||= :error   if request.rejected?
    style ||= :info
    case request.event_type
    when 'push'
      result      = request.result || 'received'
      message     = request.message
      message   ||= 'validation pending'  unless request.rejected? || request.accepted?
      message   ||= 'unknown reason'      unless request.accepted?
      message   ||= 'triggered new build' unless request.rejected?
      description = "push to #{request.branch || request.tag || '???'}"
    when 'pull_request'
      result      = request.result || 'received'
      message     = request.message
      message   ||= 'HEAD commit not updated' unless request.accepted?
      message   ||= 'triggered new build'     unless request.rejected?
      description = "PR ##{request.pull_request_number}"
    end
    say [
      color(description, [:bold, style]),
      color(result, style),
      color("(#{message})", style)
    ].join(' ').strip + "\n"
    say "  #{color(request.commit.short_sha, :bold)} - #{request.commit.subject}" if request.commit
    say "  received at: #{formatter.time(request.created_at)}"
    empty_line
  end
end