diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2017-07-11 08:38:39 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2017-07-11 08:38:39 +0000 |
commit | e20d642192df53520a76af43c0a343af8e080612 (patch) | |
tree | f3b003b4a66db9e6632ace48583f6b184e645dc0 /lib | |
parent | 3c2fd9d54db073e045eddfecd784bd1c82d5ddbc (diff) | |
parent | 1f0ee9ca1912e6ea73015c5edd910b489e9c21a0 (diff) | |
download | gitlab-ce-e20d642192df53520a76af43c0a343af8e080612.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
Diffstat (limited to 'lib')
-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 |