Class: Gitx::Cli::ReleaseCommand

Inherits:
BaseCommand show all
Includes:
Github
Defined in:
lib/gitx/cli/release_command.rb

Constant Summary

Constants included from Github

Github::CLIENT_URL, Github::GLOBAL_CONFIG_FILE, Github::PULL_REQUEST_FOOTER, Github::REVIEW_CONTEXT

Instance Method Summary collapse

Methods included from Github

#ask_without_echo, #authorization_token, #branch_status, #create_authorization, #create_pull_request, #find_or_create_pull_request, #find_pull_request, #github_client, #github_client_name, #github_organization, #github_slug, #global_config, #global_config_file, #pull_request_body, #save_global_config, #update_review_status, #username

Methods inherited from BaseCommand

#initialize

Methods included from Thor::Actions

#ask_editor, #run_cmd

Constructor Details

This class inherits a constructor from Gitx::Cli::BaseCommand

Instance Method Details

#release(branch = nil) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/gitx/cli/release_command.rb', line 14

def release(branch = nil)
  return unless yes?("Release #{current_branch.name} to #{config.base_branch}? (y/n)", :green)

  branch ||= current_branch.name
  assert_not_protected_branch!(branch, 'release')
  checkout_branch(branch)
  execute_command(UpdateCommand, :update)

  pull_request = find_or_create_pull_request(branch)
  return unless confirm_branch_status?(branch)

  checkout_branch config.base_branch
  run_cmd "git pull origin #{config.base_branch}"
  run_cmd %Q(git merge --no-ff -m "[gitx] Releasing #{branch} to #{config.base_branch} (Pull request ##{pull_request.number})" #{branch})
  run_cmd 'git push origin HEAD'

  after_release
end