diff options
author | Rémy Coutable <remy@rymai.me> | 2017-07-06 15:09:35 +0200 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-07-07 02:38:18 +0200 |
commit | 033acc01202656cf3fbd2c9821606c799adadc9a (patch) | |
tree | d576f306c0f0dcc692b063a06e3659713d3f02d2 /lib/api/projects.rb | |
parent | 050eae8c4dff87fef63e79eb60d927d0171b5f7b (diff) | |
download | gitlab-ce-033acc01202656cf3fbd2c9821606c799adadc9a.tar.gz |
Fix some N+1 queries in the GET /projects API
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'lib/api/projects.rb')
-rw-r--r-- | lib/api/projects.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/api/projects.rb b/lib/api/projects.rb index 27d49eae844..c459257158d 100644 --- a/lib/api/projects.rb +++ b/lib/api/projects.rb @@ -77,9 +77,17 @@ module API projects = projects.with_issues_enabled if params[:with_issues_enabled] projects = projects.with_merge_requests_enabled if params[:with_merge_requests_enabled] + if current_user + projects = projects.includes(:route, :taggings, namespace: :route) + project_members = current_user.project_members + group_members = current_user.group_members + end + options = options.reverse_merge( with: current_user ? Entities::ProjectWithAccess : Entities::BasicProjectDetails, statistics: params[:statistics], + project_members: project_members, + group_members: group_members, current_user: current_user ) options[:with] = Entities::BasicProjectDetails if params[:simple] |