class GithubIssuesCli::Command::Checkout
Public Instance Methods
execute()
click to toggle source
# File lib/github_issues_cli/command/checkout.rb, line 6 def execute branch_name = 'issue-' + issue_number repo = get_git_repo is_local_branch = repo.lib.branches_all.map(&:first).include? branch_name if is_local_branch repo.checkout branch_name else source = get_source_branch(issue_number) target = source if source.nil? github_repo = get_upstream_repo request = {:user => github_repo[:user], :repo => github_repo[:name], :number => issue_number} Github::Client::Issues.new.get(request) rescue raise "Can't find issue ##{issue_number}" repo.remote('upstream').fetch source = 'upstream/master' target = 'origin/' + branch_name end repo.lib.command_proxy('checkout', ['-b', branch_name, source]) end print on_green ' ' print " Checked out ##{issue_number} " print "(#{source})" unless is_local_branch puts unless is_local_branch print on_green ' ' puts " Setting upstream to (#{target})" remote_name, branch_name = target.split('/') repo.lib.command_proxy('config', ["branch.#{branch_name}.remote", remote_name]) repo.lib.command_proxy('config', ["branch.#{branch_name}.merge", "refs/heads/#{branch_name}"]) end end