class Deodorant::Gerrit

Public Class Methods

new(gerry: nil, git_client: nil) click to toggle source
# File lib/deodorant/gerrit.rb, line 6
def initialize(gerry: nil, git_client: nil)
  @git_client = git_client || Repo.default_git_client
  @gerry = gerry || Gerry.new(
    URI.parse(@git_client.remote('gerrit').url).host,
    Config.gerrit_username,
    Config.gerrit_password
  )
end

Public Instance Methods

parse_change_id(commit_message:) click to toggle source
# File lib/deodorant/gerrit.rb, line 27
def parse_change_id(commit_message:)
  change_id = %r{Change-Id: (\d*\w*)$}.match(commit_message).captures.first
end
squash_and_push(base_sha:, head_sha:, commit_message:) click to toggle source

def push_comments(comms:) end

# File lib/deodorant/gerrit.rb, line 18
def squash_and_push(base_sha:, head_sha:, commit_message:)
  @git_client.checkout head_sha
  @git_client.reset base_sha
  @git_client.add(all: true)
  @git_client.commit(commit_message)
  @git_client.push('gerrit', 'HEAD:refs/for/master')
  parse_change_id(commit_message: @git_client.log.first.message)
end