summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Thomas <nick@gitlab.com>2019-06-27 14:55:24 +0000
committerNick Thomas <nick@gitlab.com>2019-06-27 14:55:24 +0000
commitaa814403a9502358fbe4d6aec71d6e4f68d2acb9 (patch)
tree43c9bd1701c2a062031c0e7ca460c2466e2902ed
parent63188fa16fe921da93c605ed376a8ef00eb7edef (diff)
parent80e6e75c9f0f29979afcff90a16a2dd9a75ceb85 (diff)
downloadgitlab-ce-aa814403a9502358fbe4d6aec71d6e4f68d2acb9.tar.gz
Merge branch 'sh-avoid-loading-pipeline-status' into 'master'
Avoid loading pipeline status in search results See merge request gitlab-org/gitlab-ce!30111
-rw-r--r--app/views/shared/projects/_list.html.haml2
-rw-r--r--changelogs/unreleased/sh-avoid-loading-pipeline-status.yml5
-rw-r--r--spec/controllers/search_controller_spec.rb13
3 files changed, 19 insertions, 1 deletions
diff --git a/app/views/shared/projects/_list.html.haml b/app/views/shared/projects/_list.html.haml
index 13847cd9be1..576ec3e1782 100644
--- a/app/views/shared/projects/_list.html.haml
+++ b/app/views/shared/projects/_list.html.haml
@@ -28,7 +28,7 @@
.js-projects-list-holder
- if any_projects?(projects)
- - load_pipeline_status(projects)
+ - load_pipeline_status(projects) if pipeline_status
%ul.projects-list{ class: css_classes }
- projects.each_with_index do |project, i|
- css_class = (i >= projects_limit) || project.pending_delete? ? 'hide' : nil
diff --git a/changelogs/unreleased/sh-avoid-loading-pipeline-status.yml b/changelogs/unreleased/sh-avoid-loading-pipeline-status.yml
new file mode 100644
index 00000000000..2dead948786
--- /dev/null
+++ b/changelogs/unreleased/sh-avoid-loading-pipeline-status.yml
@@ -0,0 +1,5 @@
+---
+title: Avoid loading pipeline status in search results
+merge_request: 30111
+author:
+type: performance
diff --git a/spec/controllers/search_controller_spec.rb b/spec/controllers/search_controller_spec.rb
index fd36ff812ff..5a5c0a1f6ac 100644
--- a/spec/controllers/search_controller_spec.rb
+++ b/spec/controllers/search_controller_spec.rb
@@ -39,6 +39,19 @@ describe SearchController do
end
end
+ context 'global search' do
+ render_views
+
+ it 'omits pipeline status from load' do
+ project = create(:project, :public)
+ expect(Gitlab::Cache::Ci::ProjectPipelineStatus).not_to receive(:load_in_batch_for_projects)
+
+ get :show, params: { scope: 'projects', search: project.name }
+
+ expect(assigns[:search_objects].first).to eq project
+ end
+ end
+
it 'finds issue comments' do
project = create(:project, :public)
note = create(:note_on_issue, project: project)