Add link to comparison from system note, update changelog
This commit is contained in:
parent
ce0591df70
commit
ec82cecf3c
|
@ -1,6 +1,7 @@
|
|||
Please view this file on the master branch, on stable branches it's out of date.
|
||||
|
||||
v 8.13.0 (unreleased)
|
||||
- Add link from system note to compare with previous version
|
||||
- Use gitlab-shell v3.6.2 (GIT TRACE logging)
|
||||
- AbstractReferenceFilter caches project_refs on RequestStore when active
|
||||
- Speed-up group milestones show page
|
||||
|
|
|
@ -21,7 +21,8 @@ module SystemNoteService
|
|||
total_count = new_commits.length + existing_commits.length
|
||||
commits_text = "#{total_count} commit".pluralize(total_count)
|
||||
|
||||
body = "Added #{commits_text}:\n\n"
|
||||
body = "[Compare with previous version](#{diff_comparison_url(noteable, project, oldrev)})\n\n"
|
||||
body << "Added #{commits_text}:\n\n"
|
||||
body << existing_commit_summary(noteable, existing_commits, oldrev)
|
||||
body << new_commit_summary(new_commits).join("\n")
|
||||
|
||||
|
@ -466,4 +467,16 @@ module SystemNoteService
|
|||
def escape_html(text)
|
||||
Rack::Utils.escape_html(text)
|
||||
end
|
||||
|
||||
def diff_comparison_url(merge_request, project, oldrev)
|
||||
diff_id = merge_request.merge_request_diff.id
|
||||
|
||||
Gitlab::Routing.url_helpers.diffs_namespace_project_merge_request_url(
|
||||
project.namespace,
|
||||
project,
|
||||
merge_request.iid,
|
||||
diff_id: diff_id,
|
||||
start_sha: oldrev
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -40,21 +40,35 @@ describe SystemNoteService, services: true do
|
|||
describe 'note body' do
|
||||
let(:note_lines) { subject.note.split("\n").reject(&:blank?) }
|
||||
|
||||
describe 'comparison diff link line' do
|
||||
it 'adds the comparison link' do
|
||||
link = Gitlab::Routing.url_helpers.diffs_namespace_project_merge_request_url(
|
||||
project.namespace,
|
||||
project,
|
||||
noteable.iid,
|
||||
diff_id: noteable.merge_request_diff.id,
|
||||
start_sha: oldrev
|
||||
)
|
||||
|
||||
expect(note_lines[0]).to eq "[Compare with previous version](#{link})"
|
||||
end
|
||||
end
|
||||
|
||||
context 'without existing commits' do
|
||||
it 'adds a message header' do
|
||||
expect(note_lines[0]).to eq "Added #{new_commits.size} commits:"
|
||||
expect(note_lines[1]).to eq "Added #{new_commits.size} commits:"
|
||||
end
|
||||
|
||||
it 'adds a message line for each commit' do
|
||||
new_commits.each_with_index do |commit, i|
|
||||
# Skip the header
|
||||
expect(note_lines[i + 1]).to eq "* #{commit.short_id} - #{commit.title}"
|
||||
expect(note_lines[i + 2]).to eq "* #{commit.short_id} - #{commit.title}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'summary line for existing commits' do
|
||||
let(:summary_line) { note_lines[1] }
|
||||
let(:summary_line) { note_lines[2] }
|
||||
|
||||
context 'with one existing commit' do
|
||||
let(:old_commits) { [noteable.commits.last] }
|
||||
|
|
Loading…
Reference in New Issue