Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib/api
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-05-12 17:34:41 +0400
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-05-12 17:34:41 +0400
commitfe6d392236fb6f1edd5dc1c33d52806cb4fa8a39 (patch)
treeeb3745cfdf8ac773d030bb96d0533fc1f90895f8 /lib/api
parent68b89142aa6a55314ba6d6a62b9efe776b13ff07 (diff)
Draft API method for merge MR
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'lib/api')
-rw-r--r--lib/api/merge_requests.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb
index 4b88b0f84c1..fe615dfac05 100644
--- a/lib/api/merge_requests.rb
+++ b/lib/api/merge_requests.rb
@@ -111,6 +111,45 @@ module API
end
end
+ # Merge MR
+ #
+ # Parameters:
+ # id (required) - The ID of a project
+ # merge_request_id (required) - ID of MR
+ # merge_commit_message (optional) - Custom merge commit message
+ # Example:
+ # PUT /projects/:id/merge_request/:merge_request_id/merge
+ #
+ put ":id/merge_request/:merge_request_id/merge" do
+ merge_request = user_project.merge_requests.find(params[:merge_request_id])
+
+ action = if user_project.protected_branch?(merge_request.target_branch)
+ :push_code_to_protected_branches
+ else
+ :push_code
+ end
+
+ if can?(current_user, action, project)
+ # Check if MR can be merged by GitLab
+ if merge_request.unchecked?
+ merge_request.check_if_can_be_merged
+ end
+
+ if merge_request.open? && merge_request.can_be_merged?
+ merge_request.automerge!(current_user, params[:merge_commit_message] || merge_request.merge_commit_message)
+
+ # return success
+ else
+
+ # Checkif can be merged
+ end
+
+ else
+ # not allowed
+ end
+ end
+
+
# Get a merge request's comments
#
# Parameters: