Class: Legion::CLI::Pr

Inherits:
Thor
  • Object
show all
Defined in:
lib/legion/cli/pr_command.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit_on_failure?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/legion/cli/pr_command.rb', line 12

def self.exit_on_failure?
  true
end

Instance Method Details

#createObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/legion/cli/pr_command.rb', line 29

def create
  out = formatter
  validate_branch!(out)

  diff, stat, log = gather_changes(options[:base])
  validate_diff!(diff, out)
  setup_connection

  out.header('Generating PR title and description...')
  title, body = generate_pr_content(diff, stat, log, current_branch)

  return out.json(pr_json(title, body)) if options[:json]

  display_pr_preview(out, title, body)
  title, body = confirm_or_edit(out, title, body) unless options[:yes]
  return unless title

  push_branch(current_branch) if options[:push]
  pr_url = submit_pull_request(title, body)
  out.success("PR created: #{pr_url}")
rescue CLI::Error => e
  out.error(e.message)
  raise SystemExit, 1
ensure
  Connection.shutdown
end