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,34 +125,31 @@ module Gitlab
125 # 125 #
126 # Returns false if the merge produced conflicts 126 # Returns false if the merge produced conflicts
127 # Returns true otherwise 127 # Returns true otherwise
128 - def merge_in_satellite!(repo) 128 + def merge_in_satellite!(repo, message = nil)
129 update_satellite_source_and_target!(repo) 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 # merge the source branch into the satellite 138 # merge the source branch into the satellite
132 # will raise CommandFailed when merge fails 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 rescue Grit::Git::CommandFailed => ex 141 rescue Grit::Git::CommandFailed => ex
139 handle_exception(ex) 142 handle_exception(ex)
140 end 143 end
141 144
142 # Assumes a satellite exists that is a fresh clone of the projects repo, prepares satellite for merges, diffs etc 145 # Assumes a satellite exists that is a fresh clone of the projects repo, prepares satellite for merges, diffs etc
143 def update_satellite_source_and_target!(repo) 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 rescue Grit::Git::CommandFailed => ex 150 rescue Grit::Git::CommandFailed => ex
153 handle_exception(ex) 151 handle_exception(ex)
154 end 152 end
155 -  
156 end 153 end
157 end 154 end
158 end 155 end