diff --git a/app/services/system_note_service.rb b/app/services/system_note_service.rb index 843b44abd17..edced010811 100644 --- a/app/services/system_note_service.rb +++ b/app/services/system_note_service.rb @@ -274,7 +274,9 @@ class SystemNoteService # Check if a cross reference to a noteable from a mentioner already exists # # This method is used to prevent multiple notes being created for a mention - # when a issue is updated, for example. + # when a issue is updated, for example. The method also calls notes_for_mentioner + # to check if the mentioner is a commit, and return matches only on commit hash + # instead of project + commit, to avoid repeated mentions from forks. # # noteable - Noteable object being referenced # mentioner - Mentionable object diff --git a/spec/services/system_note_service_spec.rb b/spec/services/system_note_service_spec.rb index 9b9732ea01f..1bdc03af12d 100644 --- a/spec/services/system_note_service_spec.rb +++ b/spec/services/system_note_service_spec.rb @@ -431,10 +431,6 @@ describe SystemNoteService, services: true do let(:commit2) { forked_project.commit } before do - allow(commit0).to receive(:to_reference) { - noteable.project.to_reference + - commit0.class.reference_prefix + commit0.id - } described_class.cross_reference(noteable, commit0, author2) end