class Travis::CLI::Show

def run(number = last_build.number)

def run(number = last_build.number)
  number = repository.branch(number).number if number !~ /^\d+(\.\d+)?$/ and repository.branch(number)
  entity = job(number) || build(number)
  error "could not find job or build #{repository.slug}##{number}" unless entity
  say template(__FILE__) % [
    entity.class.one.capitalize,
    entity.number,
    entity.commit.subject,
    entity.state,
    entity.color,
    entity.pull_request? ? "pull request" : "push",
    entity.branch_info,
    entity.commit.compare_url,
    formatter.duration(entity.duration),
    formatter.time(entity.started_at),
    formatter.time(entity.finished_at)
  ]
  if entity.respond_to? :jobs
    empty_line
    entity.jobs.each do |job|
      say [
        color("##{job.number} #{job.state}:".ljust(16), [job.color, :bold]),
        formatter.duration(job.duration).ljust(14),
        formatter.job_config(job.config),
        (color("(failure allowed)", :info) if job.allow_failures?)
      ].compact.join(" ").rstrip
    end
  else
    config = formatter.job_config(entity.config)
    say color("Allow Failure: ", :info) + entity.allow_failures?.inspect
    say color("Config:        ", :info) + config unless config.empty?
  end
  if entity.respond_to? :annotations and entity.annotations.any?
    empty_line
    say color("Annotations:", :bold)
    entity.annotations.each do |annotation|
      say [
        color("#{annotation.provider_name} #{annotation.status}:", [annotation.color, :bold]),
        color(annotation.description, annotation.color),
        color("(%s)" % annotation.url, :info)
      ].compact.join(" ").rstrip
    end
  end
end