Add diff hunks to notification emails on MR
Added diff hunks to notification emails of messages on merge requests. This provides code context to the note. Uses existing template for formatting a diff for email (from repository push notifications).
This commit is contained in:
parent
838c1aad68
commit
38ed96e9b1
5 changed files with 27 additions and 3 deletions
|
@ -797,6 +797,7 @@ entry.
|
|||
## 8.11.0 (2016-08-22)
|
||||
|
||||
- Use test coverage value from the latest successful pipeline in badge. !5862
|
||||
- Add git diff context to notifications of new notes on merge requests !5855 (hoopes)
|
||||
- Add test coverage report badge. !5708
|
||||
- Remove the http_parser.rb dependency by removing the tinder gem. !5758 (tbalthazar)
|
||||
- Add Koding (online IDE) integration
|
||||
|
|
|
@ -1,7 +1,15 @@
|
|||
= content_for :head do
|
||||
= stylesheet_link_tag 'mailers/highlighted_diff_email'
|
||||
|
||||
- if @note.diff_note? && @note.diff_file
|
||||
%p.details
|
||||
New comment on diff for
|
||||
= link_to @note.diff_file.file_path, @target_url
|
||||
\:
|
||||
|
||||
.diff-content.code.js-syntax-highlight
|
||||
%table
|
||||
- Discussion.new([@note]).truncated_diff_lines.each do |line|
|
||||
= render "projects/diffs/line", line: line, diff_file: @note.diff_file, plain: true
|
||||
|
||||
= render 'note_message'
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
= content_for :head do
|
||||
= stylesheet_link_tag 'mailers/repository_push_email'
|
||||
= stylesheet_link_tag 'mailers/highlighted_diff_email'
|
||||
|
||||
%h3
|
||||
#{@message.author_name} #{@message.action_name} #{@message.ref_type} #{@message.ref_name}
|
||||
|
|
|
@ -580,8 +580,10 @@ describe Notify do
|
|||
let(:note_author) { create(:user, name: 'author_name') }
|
||||
let(:note) { create(:note, project: project, author: note_author) }
|
||||
|
||||
before :each do
|
||||
allow(Note).to receive(:find).with(note.id).and_return(note)
|
||||
before do |example|
|
||||
unless example.metadata[:skip_before]
|
||||
allow(Note).to receive(:find).with(note.id).and_return(note)
|
||||
end
|
||||
end
|
||||
|
||||
shared_examples 'a note email' do
|
||||
|
@ -663,6 +665,19 @@ describe Notify do
|
|||
end
|
||||
end
|
||||
|
||||
describe "on a merge request with diffs", :skip_before do
|
||||
let(:merge_request) { create(:merge_request_with_diffs) }
|
||||
let(:note_with_diff) {create(:diff_note_on_merge_request)}
|
||||
|
||||
before(:each) { allow(note_with_diff).to receive(:noteable).and_return(merge_request) }
|
||||
subject { Notify.note_merge_request_email(recipient.id, note_with_diff.id) }
|
||||
|
||||
it 'includes diffs with character-level highlighting' do
|
||||
expected_line_text = Discussion.new([note_with_diff]).truncated_diff_lines.first.text
|
||||
is_expected.to have_body_text expected_line_text
|
||||
end
|
||||
end
|
||||
|
||||
describe 'on an issue' do
|
||||
let(:issue) { create(:issue, project: project) }
|
||||
let(:note_on_issue_path) { namespace_project_issue_path(project.namespace, project, issue, anchor: "note_#{note.id}") }
|
||||
|
|
Loading…
Reference in a new issue