Skip to content
Snippets Groups Projects
Commit 2729bdf3 authored by Pierre de La Morinerie's avatar Pierre de La Morinerie Committed by Marin Jankovski
Browse files

Don't send an email for "mentioned in" notes

Currently, an email is sent every time a mentionable is referenced
by an issue, a commit or a merge request: if I comment "This MR is
related to #5", watchers get one email for the comment, and another
one stating "Issue #5 was mentioned by issue #13".

This is annoying — but the biggest issue is when pushing an existing
branch. Every issue referenced by commit messages in this branch will
get a new mention (which is fine), and dozens of emails will be sent
for all these new mentions (which is not).

This commit fixes the spam by avoiding to send an email when a new
mention is created. In most cases the email notification for the
mentioner is enough.
parent c6ed5230
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -111,6 +111,7 @@ class NotificationService
 
# ignore gitlab service messages
return true if note.note =~ /\A_Status changed to closed_/
return true if note.note =~ /\A_mentioned in / && note.system == true
 
opts = { noteable_type: note.noteable_type, project_id: note.project_id }
 
Loading
Loading
Loading
Loading
@@ -32,6 +32,7 @@ describe NotificationService do
describe 'Notes' do
context 'issue note' do
let(:issue) { create(:issue, assignee: create(:user)) }
let(:mentioned_issue) { create(:issue, assignee: issue.assignee) }
let(:note) { create(:note_on_issue, noteable: issue, project_id: issue.project_id, note: '@mention referenced') }
 
before do
Loading
Loading
@@ -50,6 +51,13 @@ describe NotificationService do
notification.new_note(note)
end
 
it 'filters out "mentioned in" notes' do
mentioned_note = Note.create_cross_reference_note(mentioned_issue, issue, issue.author, issue.project)
Notify.should_not_receive(:note_issue_email)
notification.new_note(mentioned_note)
end
def should_email(user_id)
Notify.should_receive(:note_issue_email).with(user_id, note.id)
end
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment