Notify current_user about automatic merge after successful build
Fixes: https://gitlab.com/gitlab-org/gitlab-ce/issues/14409
This commit is contained in:
parent
f78c86bbd5
commit
6e6f34bffb
3 changed files with 24 additions and 5 deletions
|
@ -15,6 +15,7 @@ v 8.13.0 (unreleased)
|
|||
- Add organization field to user profile
|
||||
- Optimize GitHub importing for speed and memory
|
||||
- API: expose pipeline data in builds API (!6502, Guilherme Salazar)
|
||||
- Notify the Merger about merge after successful build (Dimitris Karakasilis)
|
||||
|
||||
v 8.12.2 (unreleased)
|
||||
- Added University content to doc/university
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -962,6 +962,20 @@ describe NotificationService, services: true do
|
|||
should_not_email(@u_lazy_participant)
|
||||
end
|
||||
|
||||
it "notifies the merger when merge_when_build_succeeds is true" do
|
||||
merge_request.merge_when_build_succeeds = true
|
||||
notification.merge_mr(merge_request, @u_watcher)
|
||||
|
||||
should_email(@u_watcher)
|
||||
end
|
||||
|
||||
it "does not notify the merger when merge_when_build_succeeds is false" do
|
||||
merge_request.merge_when_build_succeeds = false
|
||||
notification.merge_mr(merge_request, @u_watcher)
|
||||
|
||||
should_not_email(@u_watcher)
|
||||
end
|
||||
|
||||
context 'participating' do
|
||||
context 'by assignee' do
|
||||
before do
|
||||
|
|
Loading…
Reference in a new issue