diff --git a/app/controllers/projects/blob_controller.rb b/app/controllers/projects/blob_controller.rb index 7e072788fc9..b04ffe80db4 100644 --- a/app/controllers/projects/blob_controller.rb +++ b/app/controllers/projects/blob_controller.rb @@ -9,6 +9,8 @@ class Projects::BlobController < Projects::ApplicationController include ActionView::Helpers::SanitizeHelper prepend_before_action :authenticate_user!, only: [:edit] + around_action :allow_gitaly_ref_name_caching, only: [:show] + before_action :require_non_empty_project, except: [:new, :create] before_action :authorize_download_code! diff --git a/app/controllers/projects/commits_controller.rb b/app/controllers/projects/commits_controller.rb index a49ede04de7..f540ccee386 100644 --- a/app/controllers/projects/commits_controller.rb +++ b/app/controllers/projects/commits_controller.rb @@ -7,6 +7,7 @@ class Projects::CommitsController < Projects::ApplicationController include RendersCommits prepend_before_action(only: [:show]) { authenticate_sessionless_user!(:rss) } + around_action :allow_gitaly_ref_name_caching before_action :whitelist_query_limiting, except: :commits_root before_action :require_non_empty_project before_action :assign_ref_vars, except: :commits_root @@ -14,8 +15,6 @@ 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/refs_controller.rb b/app/controllers/projects/refs_controller.rb index b97fbe19bbf..b3447812ef2 100644 --- a/app/controllers/projects/refs_controller.rb +++ b/app/controllers/projects/refs_controller.rb @@ -4,6 +4,8 @@ class Projects::RefsController < Projects::ApplicationController include ExtractsPath include TreeHelper + around_action :allow_gitaly_ref_name_caching, only: [:logs_tree] + before_action :require_non_empty_project before_action :validate_ref_id before_action :assign_ref_vars diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 94258e0e90a..89dc43a48a1 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -10,6 +10,8 @@ class ProjectsController < Projects::ApplicationController prepend_before_action(only: [:show]) { authenticate_sessionless_user!(:rss) } + around_action :allow_gitaly_ref_name_caching, only: [:index, :show] + before_action :whitelist_query_limiting, only: [:create] before_action :authenticate_user!, except: [:index, :show, :activity, :refs, :resolve] before_action :redirect_git_extension, only: [:show] @@ -26,8 +28,6 @@ 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/sh-improve-find-commit-caching.yml b/changelogs/unreleased/sh-improve-find-commit-caching.yml new file mode 100644 index 00000000000..1b38684d018 --- /dev/null +++ b/changelogs/unreleased/sh-improve-find-commit-caching.yml @@ -0,0 +1,5 @@ +--- +title: Expand FindCommit caching to blob and refs +merge_request: 27084 +author: +type: performance diff --git a/spec/controllers/projects/blob_controller_spec.rb b/spec/controllers/projects/blob_controller_spec.rb index 32949e0e7d6..485e3e21c4d 100644 --- a/spec/controllers/projects/blob_controller_spec.rb +++ b/spec/controllers/projects/blob_controller_spec.rb @@ -10,6 +10,8 @@ describe Projects::BlobController do context 'with file path' do before do + expect(::Gitlab::GitalyClient).to receive(:allow_ref_name_caching).and_call_original + get(:show, params: { namespace_id: project.namespace, diff --git a/spec/controllers/projects/refs_controller_spec.rb b/spec/controllers/projects/refs_controller_spec.rb index 62f2af947e4..0d0fa5d9f45 100644 --- a/spec/controllers/projects/refs_controller_spec.rb +++ b/spec/controllers/projects/refs_controller_spec.rb @@ -44,11 +44,15 @@ describe Projects::RefsController do end it 'renders JS' do + expect(::Gitlab::GitalyClient).to receive(:allow_ref_name_caching).and_call_original + xhr_get(:js) expect(response).to be_success end it 'renders JSON' do + expect(::Gitlab::GitalyClient).to receive(:allow_ref_name_caching).and_call_original + xhr_get(:json) expect(response).to be_success