class Octofart::Tasks::CreateBranch

Public Instance Methods

run(params) click to toggle source
# File lib/octofart/tasks/create_branch.rb, line 5
def run(params)
  params[:repositories].each_pair do |repo_name, metadata|
    head_branch_name ||= params[:pull_request][:branch_name]
    head_branch_name ||= Octofart.unique_head_branch_name
    metadata[:head_branch][:name] ||= "heads/#{head_branch_name}"

    head_branch =
      begin
        Octofart.client.ref(repo_name, metadata[:head_branch][:name])
      rescue
        puts "Ref not found, so we'll create one."
        Octofart.client.create_ref(repo_name, metadata[:head_branch][:name], metadata[:base_branch][:sha])
      end

    metadata[:head_branch][:sha] = head_branch.object.sha
    metadata[:head_branch][:ref] = head_branch.ref
  end

  params
end