diff --git a/lib/gitlab/gitaly_client/repository_service.rb b/lib/gitlab/gitaly_client/repository_service.rb index 93d58710b0ca4ff938c26f24b99cf7a3c48a739f..b5b7d94b4d0dc346511317febf84abca81ae813f 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 f457ba06074ffb33f3c9758c6cb5cb6f8d20f33b..08457e20ec3ba247e3b9ee04b654e8dfe88d16f4 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)