summaryrefslogtreecommitdiff
path: root/lib/api/merge_requests.rb
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-06-03 15:53:26 +0200
committerKamil Trzcinski <ayufan@ayufan.eu>2016-06-03 15:53:26 +0200
commit8ce1896b46f893de62528e44172be8c128b27c9b (patch)
treef71e8ece71298c692bdad59df4bacbc12e305419 /lib/api/merge_requests.rb
parent9423547f6181bc7e4c9c32e86bd7f72b4c094de0 (diff)
parentca3c5c295ed653b483fe81c3918ffe60f46666b9 (diff)
downloadgitlab-ce-8ce1896b46f893de62528e44172be8c128b27c9b.tar.gz
Merge commit 'ca3c5c295ed653b483fe81c3918ffe60f46666b9' into rename-ci-commit
* commit 'ca3c5c295ed653b483fe81c3918ffe60f46666b9': Let contributors know where to start Ensure branch cleanup regardless of whether the import process succeeds Fix failing todo tests Reorder the todos because the use of the project finder attempts to order them differently Update target todo test to use a public project Use the project finder in the todos finder to limit todos to just ones within projects you have access to. Move filtering todos by projects not pending deletion into a scope on the todo model Reduce the filters on the todos joins project query by being explicit about the join Ensure we don't show TODOS for projects pending delete Fix deprecation warnings in spec/services/issues/bulk_update_service_spec.rb Remove unused Issuable#is_assigned? method fixup! Don't allow merges with new commits fixup! Add `sha` parameter to MR accept API Reduce Namespace queries in UserReferenceFilter Added ReferenceFilter#nodes Returning enums in ReferenceFilter#each_node Don't allow merges with new commits Add `sha` parameter to MR accept API
Diffstat (limited to 'lib/api/merge_requests.rb')
-rw-r--r--lib/api/merge_requests.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb
index d129c510d63..2e7836dc8fb 100644
--- a/lib/api/merge_requests.rb
+++ b/lib/api/merge_requests.rb
@@ -218,6 +218,7 @@ module API
# merge_commit_message (optional) - Custom merge commit message
# should_remove_source_branch (optional) - When true, the source branch will be deleted if possible
# merge_when_build_succeeds (optional) - When true, this MR will be merged when the build succeeds
+ # sha (optional) - When present, must have the HEAD SHA of the source branch
# Example:
# PUT /projects/:id/merge_requests/:merge_request_id/merge
#
@@ -233,6 +234,10 @@ module API
render_api_error!('Branch cannot be merged', 406) unless merge_request.can_be_merged?
+ if params[:sha] && merge_request.source_sha != params[:sha]
+ render_api_error!("SHA does not match HEAD of source branch: #{merge_request.source_sha}", 409)
+ end
+
merge_params = {
commit_message: params[:merge_commit_message],
should_remove_source_branch: params[:should_remove_source_branch]