Commit 663b3c96 authored by Douwe Maan's avatar Douwe Maan
Browse files

Condense commits already in target branch when updating merge request source branch.

parent 5a43f301a01b
......@@ -26,6 +26,7 @@ v 7.9.0 (unreleased)
- Add Bitbucket omniauth provider.
- Add Bitbucket importer.
- Support referencing issues to a project whose name starts with a digit
- Condense commits already in target branch when updating merge request source branch.
v 7.8.2
- Fix service migration issue when upgrading from versions prior to 7.3
......
......@@ -151,18 +151,41 @@ def create_labels_change_note(noteable, project, author, added_labels, removed_l
)
end
def create_new_commits_note(noteable, project, author, commits)
commits_text = ActionController::Base.helpers.pluralize(commits.size, 'new commit')
def create_new_commits_note(merge_request, project, author, new_commits, existing_commits = [])
total_count = new_commits.length + existing_commits.length
commits_text = ActionController::Base.helpers.pluralize(total_count, 'commit')
body = "Added #{commits_text}:\n\n"
commits.each do |commit|
if existing_commits.length > 0
commit_ids =
if existing_commits.length == 1
existing_commits.first.short_id
else
"#{existing_commits.first.short_id}...#{existing_commits.last.short_id}"
end
commits_text = ActionController::Base.helpers.pluralize(existing_commits.length, 'commit')
branch =
if merge_request.for_fork?
"#{merge_request.target_project_namespace}:#{merge_request.target_branch}"
else
merge_request.target_branch
end
message = "* #{commit_ids} - _#{commits_text} from branch `#{branch}`_"
body << message
body << "\n"
end
new_commits.each do |commit|
message = "* #{commit.short_id} - #{commit.title}"
body << message
body << "\n"
end
create(
noteable: noteable,
noteable: merge_request,
project: project,
author: author,
note: body,
......
......@@ -82,8 +82,14 @@ def comment_mr_with_commits
merge_requests = filter_merge_requests(merge_requests)
merge_requests.each do |merge_request|
mr_commit_ids = Set.new(merge_request.commits.map(&:id))
new_commits, existing_commits = @commits.partition do |commit|
mr_commit_ids.include?(commit.id)
end
Note.create_new_commits_note(merge_request, merge_request.project,
@current_user, @commits)
@current_user, new_commits, existing_commits)
end
end
......
......@@ -61,7 +61,7 @@
it { expect(@merge_request.notes).to be_empty }
it { expect(@merge_request).to be_open }
it { expect(@fork_merge_request.notes.last.note).to include('new commit') }
it { expect(@fork_merge_request.notes.last.note).to include('Added 4 commits') }
it { expect(@fork_merge_request).to be_open }
end
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment