Merge pull request #6109 from jamit/master
Added email threading for update emails on issues and merge requests
This commit is contained in:
commit
17858d49f6
5 changed files with 46 additions and 0 deletions
|
@ -4,6 +4,7 @@ module Emails
|
|||
@issue = Issue.find(issue_id)
|
||||
@project = @issue.project
|
||||
@target_url = project_issue_url(@project, @issue)
|
||||
set_message_id("issue_#{issue_id}")
|
||||
mail(from: sender(@issue.author_id),
|
||||
to: recipient(recipient_id),
|
||||
subject: subject("#{@issue.title} (##{@issue.iid})"))
|
||||
|
@ -14,6 +15,7 @@ module Emails
|
|||
@previous_assignee = User.find_by(id: previous_assignee_id) if previous_assignee_id
|
||||
@project = @issue.project
|
||||
@target_url = project_issue_url(@project, @issue)
|
||||
set_reference("issue_#{issue_id}")
|
||||
mail(from: sender(updated_by_user_id),
|
||||
to: recipient(recipient_id),
|
||||
subject: subject("#{@issue.title} (##{@issue.iid})"))
|
||||
|
@ -24,6 +26,7 @@ module Emails
|
|||
@project = @issue.project
|
||||
@updated_by = User.find updated_by_user_id
|
||||
@target_url = project_issue_url(@project, @issue)
|
||||
set_reference("issue_#{issue_id}")
|
||||
mail(from: sender(updated_by_user_id),
|
||||
to: recipient(recipient_id),
|
||||
subject: subject("#{@issue.title} (##{@issue.iid})"))
|
||||
|
@ -35,6 +38,7 @@ module Emails
|
|||
@project = @issue.project
|
||||
@updated_by = User.find updated_by_user_id
|
||||
@target_url = project_issue_url(@project, @issue)
|
||||
set_reference("issue_#{issue_id}")
|
||||
mail(from: sender(updated_by_user_id),
|
||||
to: recipient(recipient_id),
|
||||
subject: subject("#{@issue.title} (##{@issue.iid})"))
|
||||
|
|
|
@ -4,6 +4,7 @@ module Emails
|
|||
@merge_request = MergeRequest.find(merge_request_id)
|
||||
@project = @merge_request.project
|
||||
@target_url = project_merge_request_url(@project, @merge_request)
|
||||
set_message_id("merge_request_#{merge_request_id}")
|
||||
mail(from: sender(@merge_request.author_id),
|
||||
to: recipient(recipient_id),
|
||||
subject: subject("#{@merge_request.title} (##{@merge_request.iid})"))
|
||||
|
@ -14,6 +15,7 @@ module Emails
|
|||
@previous_assignee = User.find_by(id: previous_assignee_id) if previous_assignee_id
|
||||
@project = @merge_request.project
|
||||
@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})"))
|
||||
|
@ -24,6 +26,7 @@ module Emails
|
|||
@updated_by = User.find updated_by_user_id
|
||||
@project = @merge_request.project
|
||||
@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})"))
|
||||
|
@ -33,6 +36,7 @@ module Emails
|
|||
@merge_request = MergeRequest.find(merge_request_id)
|
||||
@project = @merge_request.project
|
||||
@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})"))
|
||||
|
|
|
@ -15,6 +15,7 @@ module Emails
|
|||
@issue = @note.noteable
|
||||
@project = @note.project
|
||||
@target_url = project_issue_url(@project, @issue, anchor: "note_#{@note.id}")
|
||||
set_reference("issue_#{@issue.id}")
|
||||
mail(from: sender(@note.author_id),
|
||||
to: recipient(recipient_id),
|
||||
subject: subject("#{@issue.title} (##{@issue.iid})"))
|
||||
|
@ -25,6 +26,7 @@ module Emails
|
|||
@merge_request = @note.noteable
|
||||
@project = @note.project
|
||||
@target_url = project_merge_request_url(@project, @merge_request, anchor: "note_#{@note.id}")
|
||||
set_reference("merge_request_#{@merge_request.id}")
|
||||
mail(from: sender(@note.author_id),
|
||||
to: recipient(recipient_id),
|
||||
subject: subject("#{@merge_request.title} (##{@merge_request.iid})"))
|
||||
|
|
|
@ -53,6 +53,22 @@ class Notify < ActionMailer::Base
|
|||
end
|
||||
end
|
||||
|
||||
# Set the Message-ID header field
|
||||
#
|
||||
# local_part - The local part of the message ID
|
||||
#
|
||||
def set_message_id(local_part)
|
||||
headers["Message-ID"] = "<#{local_part}@#{Gitlab.config.gitlab.host}>"
|
||||
end
|
||||
|
||||
# Set the References header field
|
||||
#
|
||||
# local_part - The local part of the referenced message ID
|
||||
#
|
||||
def set_reference(local_part)
|
||||
headers["References"] = "<#{local_part}@#{Gitlab.config.gitlab.host}>"
|
||||
end
|
||||
|
||||
# Formats arguments into a String suitable for use as an email subject
|
||||
#
|
||||
# extra - Extra Strings to be inserted into the subject
|
||||
|
|
|
@ -161,6 +161,10 @@ describe Notify do
|
|||
it 'contains a link to the new issue' do
|
||||
should have_body_text /#{project_issue_path project, issue}/
|
||||
end
|
||||
|
||||
it 'has the correct message-id set' do
|
||||
should have_header 'Message-ID', "<issue_#{issue.id}@#{Gitlab.config.gitlab.host}>"
|
||||
end
|
||||
end
|
||||
|
||||
describe 'that are new with a description' do
|
||||
|
@ -197,6 +201,10 @@ describe Notify do
|
|||
it 'contains a link to the issue' do
|
||||
should have_body_text /#{project_issue_path project, issue}/
|
||||
end
|
||||
|
||||
it 'has the correct reference set' do
|
||||
should have_header 'References', "<issue_#{issue.id}@#{Gitlab.config.gitlab.host}>"
|
||||
end
|
||||
end
|
||||
|
||||
describe 'status changed' do
|
||||
|
@ -224,6 +232,10 @@ describe Notify do
|
|||
it 'contains a link to the issue' do
|
||||
should have_body_text /#{project_issue_path project, issue}/
|
||||
end
|
||||
|
||||
it 'has the correct reference set' do
|
||||
should have_header 'References', "<issue_#{issue.id}@#{Gitlab.config.gitlab.host}>"
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -253,6 +265,10 @@ describe Notify do
|
|||
it 'contains the target branch for the merge request' do
|
||||
should have_body_text /#{merge_request.target_branch}/
|
||||
end
|
||||
|
||||
it 'has the correct message-id set' do
|
||||
should have_header 'Message-ID', "<merge_request_#{merge_request.id}@#{Gitlab.config.gitlab.host}>"
|
||||
end
|
||||
end
|
||||
|
||||
describe 'that are new with a description' do
|
||||
|
@ -313,6 +329,10 @@ describe Notify do
|
|||
it 'contains a link to the merge request' do
|
||||
should have_body_text /#{project_merge_request_path project, merge_request}/
|
||||
end
|
||||
|
||||
it 'has the correct reference set' do
|
||||
should have_header 'References', "<merge_request_#{merge_request.id}@#{Gitlab.config.gitlab.host}>"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue