summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authortwonegatives <whitewhiteheaven@gmail.com>2016-12-13 00:55:33 +0300
committertwonegatives <whitewhiteheaven@gmail.com>2016-12-16 21:16:24 +0300
commitf14228f0f2f69a967c483e4aa4ef1568e5fdc49b (patch)
tree3654c8605a91e5a6b1d6aad5ddd94ea9a6ce97bc /app
parentb1120fc3e702daac001d000263eac79f4629b595 (diff)
downloadgitlab-ce-f14228f0f2f69a967c483e4aa4ef1568e5fdc49b.tar.gz
Notify the user who set auto-merge when a build fails
Diffstat (limited to 'app')
-rw-r--r--app/helpers/todos_helper.rb2
-rw-r--r--app/services/todo_service.rb15
2 files changed, 10 insertions, 7 deletions
diff --git a/app/helpers/todos_helper.rb b/app/helpers/todos_helper.rb
index 09c69786791..3c039b43f5d 100644
--- a/app/helpers/todos_helper.rb
+++ b/app/helpers/todos_helper.rb
@@ -11,7 +11,7 @@ module TodosHelper
case todo.action
when Todo::ASSIGNED then 'assigned you'
when Todo::MENTIONED then 'mentioned you on'
- when Todo::BUILD_FAILED then 'The build failed for your'
+ when Todo::BUILD_FAILED then 'The build failed for'
when Todo::MARKED then 'added a todo for'
when Todo::APPROVAL_REQUIRED then 'set you as an approver for'
end
diff --git a/app/services/todo_service.rb b/app/services/todo_service.rb
index f8e6b2ef094..d67c166275a 100644
--- a/app/services/todo_service.rb
+++ b/app/services/todo_service.rb
@@ -98,10 +98,12 @@ class TodoService
# When a build fails on the HEAD of a merge request we should:
#
- # * create a todo for that user to fix it
+ # * create a todo for author of MR to fix it
+ # * create a todo for merge_user to keep an eye on it
#
def merge_request_build_failed(merge_request)
- create_build_failed_todo(merge_request)
+ create_build_failed_todo(merge_request, merge_request.author)
+ create_build_failed_todo(merge_request, merge_request.merge_user) if merge_request.merge_when_build_succeeds?
end
# When a new commit is pushed to a merge request we should:
@@ -115,9 +117,11 @@ class TodoService
# When a build is retried to a merge request we should:
#
# * mark all pending todos related to the merge request for the author as done
+ # * mark all pending todos related to the merge request for the merge_user as done
#
def merge_request_build_retried(merge_request)
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 create a note we should:
@@ -236,10 +240,9 @@ class TodoService
create_todos(mentioned_users, attributes)
end
- def create_build_failed_todo(merge_request)
- author = merge_request.author
- attributes = attributes_for_todo(merge_request.project, merge_request, author, Todo::BUILD_FAILED)
- create_todos(author, attributes)
+ def create_build_failed_todo(merge_request, todo_author)
+ attributes = attributes_for_todo(merge_request.project, merge_request, todo_author, Todo::BUILD_FAILED)
+ create_todos(todo_author, attributes)
end
def attributes_for_target(target)