diff options
author | Robert Speicher <rspeicher@gmail.com> | 2016-10-02 14:55:21 +0200 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2016-10-02 14:55:21 +0200 |
commit | 9dd50b57ecb11b05db752c95a62d08f837ce46fd (patch) | |
tree | 501e0281e3cc097c8bd701a608810ce659969933 /app | |
parent | e64594ac4419a42b84f3ee36388f832e74361c8c (diff) | |
parent | 6e6f34bffb641ae698177055b8f3528ec41fb7c8 (diff) | |
download | gitlab-ce-9dd50b57ecb11b05db752c95a62d08f837ce46fd.tar.gz |
Merge branch 'jimmykarily/gitlab-ce-notify_current_user_when_merging_an_mr_after_build_succeeds' into 'master'
Notify current_user about automatic merge after successful build
It enables notifications to the initiator of a merge when the MR is flagged as "Merge when build succeeds".
Because when running Builds, quite some time passes between the user's
action and the actual Merge so it is a good thing to notify the
initiator of the Merge when it actually happens.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/14409
See merge request !6534
Diffstat (limited to 'app')
-rw-r--r-- | app/services/notification_service.rb | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb index 6139ed56e25..2cc0c31d77d 100644 --- a/app/services/notification_service.rb +++ b/app/services/notification_service.rb @@ -134,7 +134,8 @@ class NotificationService merge_request, merge_request.target_project, current_user, - :merged_merge_request_email + :merged_merge_request_email, + skip_current_user: !merge_request.merge_when_build_succeeds? ) end @@ -514,9 +515,11 @@ class NotificationService end end - def close_resource_email(target, project, current_user, method) + def close_resource_email(target, project, current_user, method, skip_current_user: true) action = method == :merged_merge_request_email ? "merge" : "close" - recipients = build_recipients(target, project, current_user, action: action) + + recipients = build_recipients(target, project, current_user, action: action, + skip_current_user: skip_current_user) recipients.each do |recipient| mailer.send(method, recipient.id, target.id, current_user.id).deliver_later @@ -557,7 +560,7 @@ class NotificationService end end - def build_recipients(target, project, current_user, action: nil, previous_assignee: nil) + def build_recipients(target, project, current_user, action: nil, previous_assignee: nil, skip_current_user: true) custom_action = build_custom_key(action, target) recipients = target.participants(current_user) @@ -586,7 +589,8 @@ class NotificationService recipients = reject_unsubscribed_users(recipients, target) recipients = reject_users_without_access(recipients, target) - recipients.delete(current_user) + recipients.delete(current_user) if skip_current_user + recipients.uniq end |