From f1dce2160956f27fecc4a59d36d1e1e03903a84b Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Fri, 5 Apr 2019 04:33:01 -0700 Subject: Enable FindCommit caching for project and commits pages This reduces a handful of duplicate FindCommit calls while viewing the projects and commits pages. --- app/controllers/projects/commits_controller.rb | 2 ++ app/controllers/projects_controller.rb | 2 ++ changelogs/unreleased/allow-ref-name-caching-projects-controller.yml | 5 +++++ spec/controllers/projects/commits_controller_spec.rb | 2 ++ spec/controllers/projects_controller_spec.rb | 4 ++++ 5 files changed, 15 insertions(+) create mode 100644 changelogs/unreleased/allow-ref-name-caching-projects-controller.yml diff --git a/app/controllers/projects/commits_controller.rb b/app/controllers/projects/commits_controller.rb index 2510a31c9b3..a49ede04de7 100644 --- a/app/controllers/projects/commits_controller.rb +++ b/app/controllers/projects/commits_controller.rb @@ -14,6 +14,8 @@ class Projects::CommitsController < Projects::ApplicationController before_action :validate_ref!, except: :commits_root before_action :set_commits, except: :commits_root + around_action :allow_gitaly_ref_name_caching + def commits_root redirect_to project_commits_path(@project, @project.default_branch) end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index b7beac00eda..632be29df72 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -26,6 +26,8 @@ class ProjectsController < Projects::ApplicationController before_action :authorize_admin_project!, only: [:edit, :update, :housekeeping, :download_export, :export, :remove_export, :generate_new_export] before_action :event_filter, only: [:show, :activity] + around_action :allow_gitaly_ref_name_caching, only: [:index, :show] + layout :determine_layout def index diff --git a/changelogs/unreleased/allow-ref-name-caching-projects-controller.yml b/changelogs/unreleased/allow-ref-name-caching-projects-controller.yml new file mode 100644 index 00000000000..61236b9b82b --- /dev/null +++ b/changelogs/unreleased/allow-ref-name-caching-projects-controller.yml @@ -0,0 +1,5 @@ +--- +title: Enable FindCommit caching for project and commits pages +merge_request: 27048 +author: +type: performance diff --git a/spec/controllers/projects/commits_controller_spec.rb b/spec/controllers/projects/commits_controller_spec.rb index 9fb455dd974..9f753e5641f 100644 --- a/spec/controllers/projects/commits_controller_spec.rb +++ b/spec/controllers/projects/commits_controller_spec.rb @@ -113,6 +113,8 @@ describe Projects::CommitsController do render_views before do + expect(::Gitlab::GitalyClient).to receive(:allow_ref_name_caching).and_call_original unless id.include?(' ') + get(:signatures, params: { namespace_id: project.namespace, diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb index 04cc315b175..1ce06bc877c 100644 --- a/spec/controllers/projects_controller_spec.rb +++ b/spec/controllers/projects_controller_spec.rb @@ -78,6 +78,10 @@ describe ProjectsController do end context "user has access to project" do + before do + expect(::Gitlab::GitalyClient).to receive(:allow_ref_name_caching).and_call_original + end + context "and does not have notification setting" do it "initializes notification as disabled" do get :show, params: { namespace_id: public_project.namespace, id: public_project } -- cgit v1.2.3