summaryrefslogtreecommitdiff
path: root/app/services
diff options
context:
space:
mode:
authortwonegatives <whitewhiteheaven@gmail.com>2016-12-14 17:37:31 +0300
committertwonegatives <whitewhiteheaven@gmail.com>2017-01-14 12:22:30 +0300
commit85e0b99471b58078e1e50494ae26eb13430d3a9f (patch)
treedf3d2fdb18a1b315cf77fdd9536bd99046d5313a /app/services
parentf14228f0f2f69a967c483e4aa4ef1568e5fdc49b (diff)
downloadgitlab-ce-85e0b99471b58078e1e50494ae26eb13430d3a9f.tar.gz
Notify the user who set auto-merge when merge conflict occurs
Diffstat (limited to 'app/services')
-rw-r--r--app/services/todo_service.rb15
1 files changed, 14 insertions, 1 deletions
diff --git a/app/services/todo_service.rb b/app/services/todo_service.rb
index d67c166275a..1bd6ce416ab 100644
--- a/app/services/todo_service.rb
+++ b/app/services/todo_service.rb
@@ -123,7 +123,15 @@ class TodoService
mark_pending_todos_as_done(merge_request, merge_request.author)
mark_pending_todos_as_done(merge_request, merge_request.merge_user) if merge_request.merge_when_build_succeeds?
end
-
+
+ # When a merge request could not be automatically merged due to its unmergeable state we should:
+ #
+ # * create a todo for a merge_user
+ #
+ def merge_request_became_unmergeable(merge_request)
+ create_unmergeable_todo(merge_request, merge_request.merge_user) if merge_request.merge_when_build_succeeds?
+ end
+
# When create a note we should:
#
# * mark all pending todos related to the noteable for the note author as done
@@ -245,6 +253,11 @@ class TodoService
create_todos(todo_author, attributes)
end
+ def create_unmergeable_todo(merge_request, merge_user)
+ attributes = attributes_for_todo(merge_request.project, merge_request, merge_user, Todo::UNMERGEABLE)
+ create_todos(merge_user, attributes)
+ end
+
def attributes_for_target(target)
attributes = {
project_id: target.project.id,