diff options
author | Oswaldo Ferreira <oswaldo@gitlab.com> | 2019-06-11 13:08:25 -0300 |
---|---|---|
committer | Oswaldo Ferreira <oswaldo@gitlab.com> | 2019-06-11 13:08:25 -0300 |
commit | 00a273d3a90975d22f39b142fdb85c06779d7b63 (patch) | |
tree | 0ae0468745947a5019044052d1a1a3887bd64767 /lib/api | |
parent | 74850f1f8e17d3e1e6ee21a1d1daadc6ceeeb2b4 (diff) | |
download | gitlab-ce-00a273d3a90975d22f39b142fdb85c06779d7b63.tar.gz |
Revert "Automatically update MR merge-ref along merge status"
Diffstat (limited to 'lib/api')
-rw-r--r-- | lib/api/entities.rb | 2 | ||||
-rw-r--r-- | lib/api/merge_requests.rb | 24 |
2 files changed, 19 insertions, 7 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb index f8b950cb55d..880b07d0a84 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -701,7 +701,7 @@ module API # See https://gitlab.com/gitlab-org/gitlab-ce/issues/42344 for more # information. expose :merge_status do |merge_request| - merge_request.check_mergeability + merge_request.check_if_can_be_merged merge_request.merge_status end expose :diff_head_sha, as: :sha diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb index 5bbf6df78b0..955624404f1 100644 --- a/lib/api/merge_requests.rb +++ b/lib/api/merge_requests.rb @@ -397,16 +397,28 @@ module API present merge_request, with: Entities::MergeRequest, current_user: current_user, project: user_project end - desc 'Returns the up to date merge-ref HEAD commit' - get ':id/merge_requests/:merge_request_iid/merge_ref' do + 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]) - result = ::MergeRequests::MergeabilityCheckService.new(merge_request).execute + 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.success? - present :commit_id, result.payload.dig(:merge_ref_head, :commit_id) + if result[:status] == :success + present result.slice(:commit_id), 200 else - render_api_error!(result.message, 400) + http_status = result[:http_status] || 400 + render_api_error!(result[:message], http_status) end end |