diff --git a/app/mailers/emails/merge_requests.rb b/app/mailers/emails/merge_requests.rb index ea5671c45027e7c39e7765b6978eb78bd4508c40..354c58678d57cf35c8c259a65f8312e083399919 100644 --- a/app/mailers/emails/merge_requests.rb +++ b/app/mailers/emails/merge_requests.rb @@ -41,6 +41,19 @@ module Emails to: recipient(recipient_id), subject: subject("#{@merge_request.title} (##{@merge_request.iid})")) end + + def merge_request_status_email(recipient_id, merge_request_id, status, updated_by_user_id) + @merge_request = MergeRequest.find(merge_request_id) + @mr_status = status + @project = @merge_request.project + @updated_by = User.find updated_by_user_id + @target_url = project_merge_request_url(@project, @merge_request) + set_reference("merge_request_#{merge_request_id}") + + mail(from: sender(updated_by_user_id), + to: recipient(recipient_id), + subject: subject("#{@merge_request.title} (##{@merge_request.iid}) #{@mr_status}")) + end end # Over rides default behavour to show source/target diff --git a/app/services/merge_requests/reopen_service.rb b/app/services/merge_requests/reopen_service.rb index 2eb13d3e0e1b116a1a623a8da432976af3eee069..bd68919a5509f93d2972d30cbc7e09cdf391b512 100644 --- a/app/services/merge_requests/reopen_service.rb +++ b/app/services/merge_requests/reopen_service.rb @@ -3,6 +3,7 @@ module MergeRequests def execute(merge_request) if merge_request.reopen event_service.reopen_mr(merge_request, current_user) + notification_service.reopen_mr(merge_request, current_user) create_note(merge_request) execute_hooks(merge_request) merge_request.reload_code diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb index f39b743b033846ad232d8f4cafd9569a97690711..9f86cfbbeaf28d9f0423ad2dd6c26d854a7bd13d 100644 --- a/app/services/notification_service.rb +++ b/app/services/notification_service.rb @@ -99,6 +99,10 @@ class NotificationService end end + def reopen_mr(merge_request, current_user) + reopen_resource_email(merge_request, merge_request.target_project, current_user, 'merge_request_status_email', 'reopened') + end + # Notify new user with email after creation def new_user(user) # Don't email omniauth created users diff --git a/app/views/notify/merge_request_status_email.html.haml b/app/views/notify/merge_request_status_email.html.haml new file mode 100644 index 0000000000000000000000000000000000000000..c9bf04f514e107ac9565a8df8604943cf6251866 --- /dev/null +++ b/app/views/notify/merge_request_status_email.html.haml @@ -0,0 +1,2 @@ +%p + = "Merge Request ##{@merge_request.iid} was #{@mr_status} by #{@updated_by.name}" diff --git a/app/views/notify/merge_request_status_email.text.haml b/app/views/notify/merge_request_status_email.text.haml new file mode 100644 index 0000000000000000000000000000000000000000..8750bf86e2cd84d358d52b9fc36b3f83278775e7 --- /dev/null +++ b/app/views/notify/merge_request_status_email.text.haml @@ -0,0 +1,8 @@ += "Merge Request ##{@merge_request.iid} was #{@mr_status} by #{@updated_by.name}" + +Merge Request url: #{project_merge_request_url(@merge_request.target_project, @merge_request)} + += merge_path_description(@merge_request, 'to') + +Author: #{@merge_request.author_name} +Assignee: #{@merge_request.assignee_name}