class Gerrit::Command::Submit

Display a list of submittable changes and ask the user which to submit.

Constants

DEFAULT_SEARCH_QUERY

Default search query that assumes a change is submittable if there is at least one +1 for both Code-Review and Verified labels and no -1s.

Public Instance Methods

execute() click to toggle source
# File lib/gerrit/command/submit.rb, line 14
def execute
  list_query = config.fetch('submittable_changes', DEFAULT_SEARCH_QUERY)
  execute_command(['list', list_query])

  # This will return a cached result from Command::List
  changes = Gerrit::Command::List.find_changes(client, list_query)

  index = 0
  while index < 1 || index > changes.size
    range = changes.size == 1 ? '' : "(1 - #{changes.size})"
    index = ui.ask("Which change would you like to submit? #{range} ")
              .argument(:required)
              .read_int
  end

  submit_change(changes[index - 1])
end

Private Instance Methods

submit_change(change) click to toggle source
# File lib/gerrit/command/submit.rb, line 34
def submit_change(change)
  p = Pastel.new
  description = p.cyan("#{change['subject']}") + p.green(" (##{change['number']})")
  ui.spinner("Submitting #{description}...") do
    ui.print(client.execute(%W[review change:#{change['number']} --submit]))
  end
end