From ef526ff33c01d75af5d24e4f13630213815d74d3 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Mon, 10 Jul 2017 13:56:46 -0700 Subject: Paginate the merge requests API earlier to avoid eager loading every merge request Fixes a performance regression introduced in !12732 --- lib/api/merge_requests.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb index 4ad1eef4ff1..9fd557e9cda 100644 --- a/lib/api/merge_requests.rb +++ b/lib/api/merge_requests.rb @@ -44,6 +44,7 @@ module API args[:label_name] = args.delete(:labels) merge_requests = MergeRequestsFinder.new(current_user, args).execute + merge_requests = paginate(merge_requests) .preload(:notes, :target_project, :author, :assignee, :milestone, :merge_request_diff, :labels) merge_requests.reorder(args[:order_by] => args[:sort]) @@ -85,7 +86,7 @@ module API merge_requests = find_merge_requests(project_id: user_project.id) issuable_metadata = issuable_meta_data(merge_requests, 'MergeRequest') - present paginate(merge_requests), with: Entities::MergeRequestBasic, current_user: current_user, project: user_project, issuable_metadata: issuable_metadata + present merge_requests, with: Entities::MergeRequestBasic, current_user: current_user, project: user_project, issuable_metadata: issuable_metadata end desc 'Create a merge request' do -- cgit v1.2.1