mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-21 18:46:10 +10:00
Merge branch 'mr-push-note' into 'master'
Add comment to merge request when new push happens Fixes #1494 See merge request !1065
This commit is contained in:
@@ -117,6 +117,25 @@ class Note < ActiveRecord::Base
|
||||
})
|
||||
end
|
||||
|
||||
def create_new_commits_note(noteable, project, author, commits)
|
||||
commits_text = ActionController::Base.helpers.pluralize(commits.size, 'new commit')
|
||||
body = "Added #{commits_text}:\n\n"
|
||||
|
||||
commits.each do |commit|
|
||||
message = "* #{commit.short_id} - #{commit.title}"
|
||||
body << message
|
||||
body << "\n"
|
||||
end
|
||||
|
||||
create(
|
||||
noteable: noteable,
|
||||
project: project,
|
||||
author: author,
|
||||
note: body,
|
||||
system: true
|
||||
)
|
||||
end
|
||||
|
||||
def discussions_from_notes(notes)
|
||||
discussion_ids = []
|
||||
discussions = []
|
||||
|
||||
+20
-3
@@ -400,18 +400,35 @@ class Project < ActiveRecord::Base
|
||||
def update_merge_requests(oldrev, newrev, ref, user)
|
||||
return true unless ref =~ /heads/
|
||||
branch_name = ref.gsub("refs/heads/", "")
|
||||
c_ids = self.repository.commits_between(oldrev, newrev).map(&:id)
|
||||
commits = self.repository.commits_between(oldrev, newrev)
|
||||
c_ids = commits.map(&:id)
|
||||
|
||||
# Close merge requests
|
||||
mrs = self.merge_requests.opened.where(target_branch: branch_name).to_a
|
||||
mrs = mrs.select(&:last_commit).select { |mr| c_ids.include?(mr.last_commit.id) }
|
||||
mrs.each { |merge_request| MergeRequests::MergeService.new.execute(merge_request, user, nil) }
|
||||
|
||||
mrs.uniq.each do |merge_request|
|
||||
MergeRequests::MergeService.new.execute(merge_request, user, nil)
|
||||
end
|
||||
|
||||
# Update code for merge requests into project between project branches
|
||||
mrs = self.merge_requests.opened.by_branch(branch_name).to_a
|
||||
# Update code for merge requests between project and project fork
|
||||
mrs += self.fork_merge_requests.opened.by_branch(branch_name).to_a
|
||||
mrs.each { |merge_request| merge_request.reload_code; merge_request.mark_as_unchecked }
|
||||
|
||||
mrs.uniq.each do |merge_request|
|
||||
merge_request.reload_code
|
||||
merge_request.mark_as_unchecked
|
||||
end
|
||||
|
||||
# Add comment about pushing new commits to merge requests
|
||||
mrs = self.merge_requests.opened.where(source_branch: branch_name).to_a
|
||||
mrs += self.fork_merge_requests.opened.where(source_branch: branch_name).to_a
|
||||
|
||||
mrs.uniq.each do |merge_request|
|
||||
Note.create_new_commits_note(merge_request, merge_request.project,
|
||||
user, commits)
|
||||
end
|
||||
|
||||
true
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user