summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
authorFelipe Artur <felipefac@gmail.com>2017-03-10 18:31:07 -0300
committerFelipe Artur <felipefac@gmail.com>2017-03-15 15:57:33 -0300
commita9734ca6b5fb5230d7f010c9da158066fde7a84e (patch)
treee795a09364e0e156f09f150fa3579317724231c5 /app/models/merge_request.rb
parentfe4a18653be9fa4246d89e367a40bd171776432f (diff)
downloadgitlab-ce-issue_27168.tar.gz
Remove n+1 query for pipeline status when rendering merge requests listissue_27168
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r--app/models/merge_request.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 0f7b8311588..d653b59db56 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -175,6 +175,15 @@ class MergeRequest < ActiveRecord::Base
work_in_progress?(title) ? title : "WIP: #{title}"
end
+ def self.pipelines_status_for_collection(merge_requests)
+ refs = merge_requests.pluck(:source_branch)
+
+ Ci::Pipeline.
+ where(
+ id: Ci::Pipeline.select("MAX(id)").where(ref: refs).group(:ref)
+ )
+ end
+
# `from` argument can be a Namespace or Project.
def to_reference(from = nil, full: false)
reference = "#{self.class.reference_prefix}#{iid}"