From 54e043f32e60980a8266c30dc9878c5a0c5c9b6c Mon Sep 17 00:00:00 2001 From: Robert May Date: Thu, 22 Jun 2023 15:59:51 +0100 Subject: [PATCH] Add new method for RepositoryInfo RPC Changelog: added --- lib/gitlab/gitaly_client/repository_service.rb | 6 ++++++ .../gitaly_client/repository_service_spec.rb | 17 ++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/gitlab/gitaly_client/repository_service.rb b/lib/gitlab/gitaly_client/repository_service.rb index 93d58710b0ca4f..b5b7d94b4d0dc3 100644 --- a/lib/gitlab/gitaly_client/repository_service.rb +++ b/lib/gitlab/gitaly_client/repository_service.rb @@ -52,6 +52,12 @@ def repository_size response.size end + def repository_info + request = Gitaly::RepositoryInfoRequest.new(repository: @gitaly_repo) + + gitaly_client_call(@storage, :repository_service, :repository_info, request, timeout: GitalyClient.long_timeout) + end + def get_object_directory_size request = Gitaly::GetObjectDirectorySizeRequest.new(repository: @gitaly_repo) response = gitaly_client_call(@storage, :repository_service, :get_object_directory_size, request, timeout: GitalyClient.medium_timeout) diff --git a/spec/lib/gitlab/gitaly_client/repository_service_spec.rb b/spec/lib/gitlab/gitaly_client/repository_service_spec.rb index f457ba06074ffb..08457e20ec3ba2 100644 --- a/spec/lib/gitlab/gitaly_client/repository_service_spec.rb +++ b/spec/lib/gitlab/gitaly_client/repository_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Gitlab::GitalyClient::RepositoryService do +RSpec.describe Gitlab::GitalyClient::RepositoryService, feature_category: :gitaly do using RSpec::Parameterized::TableSyntax let_it_be(:project) { create(:project, :repository) } @@ -79,6 +79,21 @@ end end + describe '#repository_info' do + it 'sends a repository_info message' do + expect_any_instance_of(Gitaly::RepositoryService::Stub) + .to receive(:repository_info) + .with(gitaly_request_with_path(storage_name, relative_path), kind_of(Hash)) + .and_call_original + + response = client.repository_info + + expect(response.size).to be_an(Integer) + expect(response.references).to be_a(Gitaly::RepositoryInfoResponse::ReferencesInfo) + expect(response.objects).to be_a(Gitaly::RepositoryInfoResponse::ObjectsInfo) + end + end + describe '#get_object_directory_size' do it 'sends a get_object_directory_size message' do expect_any_instance_of(Gitaly::RepositoryService::Stub) -- GitLab