From a9734ca6b5fb5230d7f010c9da158066fde7a84e Mon Sep 17 00:00:00 2001 From: Felipe Artur Date: Fri, 10 Mar 2017 18:31:07 -0300 Subject: Remove n+1 query for pipeline status when rendering merge requests list --- app/models/merge_request.rb | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'app/models/merge_request.rb') 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}" -- cgit v1.2.1