Commit 6df16564efd712ca201428504dde5b6ac020a87d
Exists in
master
and in
4 other branches
Merge pull request #5076 from jzi/notify_commit_author
Re-enable notifying commit authors of new commit notes
Showing
2 changed files
with
19 additions
and
18 deletions
Show diff stats
app/services/notification_service.rb
... | ... | @@ -107,12 +107,6 @@ class NotificationService |
107 | 107 | |
108 | 108 | opts = { noteable_type: note.noteable_type, project_id: note.project_id } |
109 | 109 | |
110 | - if note.commit_id.present? | |
111 | - opts.merge!(commit_id: note.commit_id) | |
112 | - else | |
113 | - opts.merge!(noteable_id: note.noteable_id) | |
114 | - end | |
115 | - | |
116 | 110 | target = note.noteable |
117 | 111 | if target.respond_to?(:participants) |
118 | 112 | recipients = target.participants |
... | ... | @@ -120,6 +114,13 @@ class NotificationService |
120 | 114 | recipients = note.mentioned_users |
121 | 115 | end |
122 | 116 | |
117 | + if note.commit_id.present? | |
118 | + opts.merge!(commit_id: note.commit_id) | |
119 | + recipients << note.commit_author | |
120 | + else | |
121 | + opts.merge!(noteable_id: note.noteable_id) | |
122 | + end | |
123 | + | |
123 | 124 | # Get users who left comment in thread |
124 | 125 | recipients = recipients.concat(User.where(id: Note.where(opts).pluck(:author_id))) |
125 | 126 | ... | ... |
spec/services/notification_service_spec.rb
... | ... | @@ -52,10 +52,12 @@ describe NotificationService do |
52 | 52 | |
53 | 53 | before do |
54 | 54 | build_team(note.project) |
55 | + note.stub(:commit_author => @u_committer) | |
55 | 56 | end |
56 | 57 | |
57 | 58 | describe :new_note do |
58 | 59 | it do |
60 | + should_email(@u_committer.id, note) | |
59 | 61 | should_email(@u_watcher.id, note) |
60 | 62 | should_not_email(@u_mentioned.id, note) |
61 | 63 | should_not_email(note.author_id, note) |
... | ... | @@ -65,18 +67,14 @@ describe NotificationService do |
65 | 67 | end |
66 | 68 | |
67 | 69 | it do |
68 | - new_note = create(:note_on_commit, | |
69 | - author: @u_participating, | |
70 | - project_id: note.project_id, | |
71 | - commit_id: note.commit_id, | |
72 | - note: '@mention referenced') | |
73 | - | |
74 | - should_email(@u_watcher.id, new_note) | |
75 | - should_email(@u_mentioned.id, new_note) | |
76 | - should_not_email(new_note.author_id, new_note) | |
77 | - should_not_email(@u_participating.id, new_note) | |
78 | - should_not_email(@u_disabled.id, new_note) | |
79 | - notification.new_note(new_note) | |
70 | + note.update_attribute(:note, '@mention referenced') | |
71 | + should_email(@u_committer.id, note) | |
72 | + should_email(@u_watcher.id, note) | |
73 | + should_email(@u_mentioned.id, note) | |
74 | + should_not_email(note.author_id, note) | |
75 | + should_not_email(@u_participating.id, note) | |
76 | + should_not_email(@u_disabled.id, note) | |
77 | + notification.new_note(note) | |
80 | 78 | end |
81 | 79 | |
82 | 80 | def should_email(user_id, n) |
... | ... | @@ -240,10 +238,12 @@ describe NotificationService do |
240 | 238 | @u_participating = create(:user, notification_level: Notification::N_PARTICIPATING) |
241 | 239 | @u_disabled = create(:user, notification_level: Notification::N_DISABLED) |
242 | 240 | @u_mentioned = create(:user, username: 'mention', notification_level: Notification::N_PARTICIPATING) |
241 | + @u_committer = create(:user, username: 'committer') | |
243 | 242 | |
244 | 243 | project.team << [@u_watcher, :master] |
245 | 244 | project.team << [@u_participating, :master] |
246 | 245 | project.team << [@u_disabled, :master] |
247 | 246 | project.team << [@u_mentioned, :master] |
247 | + project.team << [@u_committer, :master] | |
248 | 248 | end |
249 | 249 | end | ... | ... |