diff --git a/app/views/notify/_note_email.text.erb b/app/views/notify/_note_email.text.erb index 5a67214059c2ecd8315fed01213b3f5e7c6ed0a6..fae8fa3ccf3ceeb569aa7afbd90efadd854b736b 100644 --- a/app/views/notify/_note_email.text.erb +++ b/app/views/notify/_note_email.text.erb @@ -1,5 +1,6 @@ <% note = local_assigns.fetch(:note, @note) -%> <% diff_limit = local_assigns.fetch(:diff_limit, nil) -%> +<% target_url = local_assigns.fetch(:target_url, @target_url) -%> <% discussion = note.discussion if note.part_of_discussion? -%> <% if discussion && !discussion.individual_note? -%> @@ -13,6 +14,9 @@ <%= " on #{discussion.file_path}" -%> <% end -%> <%= ":" -%> +<% if discussion.diff_discussion? || !discussion.new_discussion? -%> +<%= " #{target_url}" -%> +<% end -%> <% elsif Gitlab::CurrentSettings.email_author_in_body -%> diff --git a/ee/app/views/notify/new_review_email.text.erb b/ee/app/views/notify/new_review_email.text.erb index 5b969cb0aceb5e26f88c92af93ebe2d113ede0f4..075eb12bfb2cfb48fcd1102a88c8a88540d98ef8 100644 --- a/ee/app/views/notify/new_review_email.text.erb +++ b/ee/app/views/notify/new_review_email.text.erb @@ -2,7 +2,8 @@ -- <% @notes.each_with_index do |note, index| %> - <%= render 'note_email', note: note, diff_limit: 3 %> + <% target_url = project_merge_request_url(@project, @merge_request, anchor: "note_#{note.id}") %> + <%= render 'note_email', note: note, diff_limit: 3, target_url: target_url %> <% if index != @notes.length-1 %> -- diff --git a/ee/changelogs/unreleased/10220-link-to-note-from-email.yml b/ee/changelogs/unreleased/10220-link-to-note-from-email.yml new file mode 100644 index 0000000000000000000000000000000000000000..bba3cd1e1aa68bd9e97c8f1390a373b22977cf09 --- /dev/null +++ b/ee/changelogs/unreleased/10220-link-to-note-from-email.yml @@ -0,0 +1,5 @@ +--- +title: Display link to review note in text email, similar to HTML email +merge_request: 10401 +author: +type: changed diff --git a/ee/spec/mailers/notify_spec.rb b/ee/spec/mailers/notify_spec.rb index a1cc86758d053e47adb713cfa2003f821ba829da..57635b6fbb8def0fd294c4fc0d020a6f33d096a8 100644 --- a/ee/spec/mailers/notify_spec.rb +++ b/ee/spec/mailers/notify_spec.rb @@ -278,8 +278,8 @@ end describe 'merge request reviews' do - let(:review) { create(:review, project: project, merge_request: merge_request) } - let(:notes) { create_list(:notes, 3, review: review, project: project, author: review.author, noteable: merge_request) } + let!(:review) { create(:review, project: project, merge_request: merge_request) } + let!(:notes) { create_list(:note, 3, review: review, project: project, author: review.author, noteable: merge_request) } subject { described_class.new_review_email(recipient.id, review.id) } @@ -305,6 +305,19 @@ end end + context 'when diff note' do + let!(:notes) { create_list(:diff_note_on_merge_request, 3, review: review, project: project, author: review.author, noteable: merge_request) } + + it 'links to notes' do + review.notes.each do |note| + # Text part + expect(subject.text_part.body.raw_source).to include( + project_merge_request_url(project, merge_request, anchor: "note_#{note.id}") + ) + end + end + end + it 'contains review author name' do is_expected.to have_body_text review.author_name end