Commit 7c6287c878c3106492c1f96d7624e99aa6c8b398

Authored by Dmitriy Zaporozhets
1 parent 5c1a360f

Add support of custom message to merge action of satellite

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Showing 1 changed file with 12 additions and 15 deletions   Show diff stats
lib/gitlab/satellite/merge_action.rb
... ... @@ -125,34 +125,31 @@ module Gitlab
125 125 #
126 126 # Returns false if the merge produced conflicts
127 127 # Returns true otherwise
128   - def merge_in_satellite!(repo)
  128 + def merge_in_satellite!(repo, message = nil)
129 129 update_satellite_source_and_target!(repo)
130 130  
  131 + merge_message = "Merge branch '#{merge_request.source_branch}' into '#{merge_request.target_branch}'"
  132 +
  133 + if message
  134 + merge_message << "\n\n"
  135 + merge_message << message
  136 + end
  137 +
131 138 # merge the source branch into the satellite
132 139 # will raise CommandFailed when merge fails
133   - if merge_request.for_fork?
134   - repo.git.pull(default_options({no_ff: true}), 'source', merge_request.source_branch)
135   - else
136   - repo.git.pull(default_options({no_ff: true}), 'origin', merge_request.source_branch)
137   - end
  140 + repo.git.merge(default_options({no_ff: true}), "-m #{merge_message}", "source/#{merge_request.source_branch}")
138 141 rescue Grit::Git::CommandFailed => ex
139 142 handle_exception(ex)
140 143 end
141 144  
142 145 # Assumes a satellite exists that is a fresh clone of the projects repo, prepares satellite for merges, diffs etc
143 146 def update_satellite_source_and_target!(repo)
144   - if merge_request.for_fork?
145   - repo.remote_add('source', merge_request.source_project.repository.path_to_repo)
146   - repo.remote_fetch('source')
147   - repo.git.checkout(default_options({b: true}), merge_request.target_branch, "origin/#{merge_request.target_branch}")
148   - else
149   - repo.git.checkout(default_options, "#{merge_request.source_branch}")
150   - repo.git.checkout(default_options({t: true}), "origin/#{merge_request.target_branch}")
151   - end
  147 + repo.remote_add('source', merge_request.source_project.repository.path_to_repo)
  148 + repo.remote_fetch('source')
  149 + repo.git.checkout(default_options({b: true}), merge_request.target_branch, "origin/#{merge_request.target_branch}")
152 150 rescue Grit::Git::CommandFailed => ex
153 151 handle_exception(ex)
154 152 end
155   -
156 153 end
157 154 end
158 155 end
... ...