class FightClub::Arena

Attributes

base_pull[R]
client[R]
git[R]

Public Class Methods

new(base_pull, config = FightClub.config) click to toggle source
# File lib/fight_club/arena.rb, line 13
def initialize(base_pull, config = FightClub.config)
  @base_pull = base_pull
end

Public Instance Methods

start() click to toggle source
# File lib/fight_club/arena.rb, line 17
def start
  Repository.new.update(
    FightClub.config.uri,
    FightClub.config.repo_name,
    "#{FightClub.config.repos_directory}/repos",
    git
  )

  git.checkout("#{base_pull["head"]["ref"]}")

  return unless base_pull["base"]["ref"] == FightClub.config.master_branch

  return unless Merger.attempt_merge(base_pull, git)

  git.reset_hard("origin/#{base_pull["head"]["ref"]}")

  pull_requests = client.pull_requests(FightClub.config.repo, :per_page => 200)

  pull_requests.each do |pr|
    Comparer.new(base_pull, pr, git).execute
  end

  true
end