diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2017-07-11 08:38:39 +0000 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2017-07-11 11:18:44 -0700 |
commit | ebcc5989a817fbb9dd4699690e867d19c8642710 (patch) | |
tree | f7513f7bddc81d3345c304cc78cfb8de44e3b4f5 | |
parent | c30ec9e7906f85c3e3697dffb662937dce116caa (diff) | |
download | gitlab-ce-ebcc5989a817fbb9dd4699690e867d19c8642710.tar.gz |
Merge branch 'sh-improve-mr-api' into 'master'
Paginate the merge requests API earlier to avoid eager loading every merge request
See merge request !12764
-rw-r--r-- | lib/api/merge_requests.rb | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb index 4ad1eef4ff1..1a3fdb66f3f 100644 --- a/lib/api/merge_requests.rb +++ b/lib/api/merge_requests.rb @@ -44,9 +44,9 @@ module API args[:label_name] = args.delete(:labels) merge_requests = MergeRequestsFinder.new(current_user, args).execute - .preload(:notes, :target_project, :author, :assignee, :milestone, :merge_request_diff, :labels) - - merge_requests.reorder(args[:order_by] => args[:sort]) + merge_requests = merge_requests.reorder(args[:order_by] => args[:sort]) + paginate(merge_requests) + .preload(:notes, :target_project, :author, :assignee, :milestone, :merge_request_diff, :labels) end params :optional_params_ce do @@ -85,7 +85,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 |