summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2019-02-27 10:59:06 +0000
committerDouwe Maan <douwe@gitlab.com>2019-02-27 10:59:06 +0000
commit7ebe264779b5ef6db61afca836774ecb5a3fcbfc (patch)
treececf38c19aff561862667503206c52ca6c9946c8 /lib
parent8cfbe8ab71fcef351a5b40852d7dd66acdd66531 (diff)
parente8fbc070e01b0c527c66d803f9be813b4c2cdc0a (diff)
downloadgitlab-ce-7ebe264779b5ef6db61afca836774ecb5a3fcbfc.tar.gz
Merge branch 'osw-merge-refs-refreshing-api' into 'master'
API support for MR merge to temporary merge ref path Closes #57252 See merge request gitlab-org/gitlab-ce!24918
Diffstat (limited to 'lib')
-rw-r--r--lib/api/merge_requests.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb
index 03f6684226f..44f1e81caf2 100644
--- a/lib/api/merge_requests.rb
+++ b/lib/api/merge_requests.rb
@@ -388,6 +388,31 @@ module API
present merge_request, with: Entities::MergeRequest, current_user: current_user, project: user_project
end
+ desc 'Merge a merge request to its default temporary merge ref path'
+ params do
+ optional :merge_commit_message, type: String, desc: 'Custom merge commit message'
+ end
+ put ':id/merge_requests/:merge_request_iid/merge_to_ref' do
+ merge_request = find_project_merge_request(params[:merge_request_iid])
+
+ authorize! :admin_merge_request, user_project
+
+ merge_params = {
+ commit_message: params[:merge_commit_message]
+ }
+
+ result = ::MergeRequests::MergeToRefService
+ .new(merge_request.target_project, current_user, merge_params)
+ .execute(merge_request)
+
+ if result[:status] == :success
+ present result.slice(:commit_id), 200
+ else
+ http_status = result[:http_status] || 400
+ render_api_error!(result[:message], http_status)
+ end
+ end
+
desc 'Cancel merge if "Merge When Pipeline Succeeds" is enabled' do
success Entities::MergeRequest
end