GitLab wurde erfolgreich aktualisiert. Durch regelmäßige Updates bleibt das THM GitLab sicher. Danke für Ihre Geduld.

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

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

parent 8b53d9ef
......@@ -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