diff --git a/app/controllers/projects/blob_controller.rb b/app/controllers/projects/blob_controller.rb index 7e072788fc9a08f01096aaae4e713850f0ceee05..b04ffe80db4ff39fbeca24ef218fb55d3a3b60d8 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 a49ede04de7616321536de4999b44b0fe1540b9e..f540ccee3864971eab8209139f0b8ac9da48a6da 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 b97fbe19bbf12a2a14131505d694265c5656a013..b3447812ef2e82eb276175cb0933ef147195905c 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 94258e0e90ab1b8e90eb02d6cc050f6dad25ea89..89dc43a48a10af4049845d09aba41b96232721d6 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 0000000000000000000000000000000000000000..1b38684d018cefe8652ed761af73c219fcc535f9 --- /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 32949e0e7d60ce8eb4a97564a459e3e5e1e1822c..485e3e21c4dcc62d16b66912d27a3b99c612dd8c 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 62f2af947e47f6364544a4132eb0966fcd49594c..0d0fa5d9f455d91bd545d5d7bb886dc35e33b3c0 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