diff --git a/ruby/lib/gitaly_server/remote_service.rb b/ruby/lib/gitaly_server/remote_service.rb index 39cc6e60e00a5a6cab598bb1beb10137dba6e3f6..dda0c7dcb0c142126e63c7c7ab404cb8507101bc 100644 --- a/ruby/lib/gitaly_server/remote_service.rb +++ b/ruby/lib/gitaly_server/remote_service.rb @@ -16,7 +16,7 @@ module GitalyServer repo = Gitlab::Git::Repository.from_gitaly(request.repository, call) remote_repo = Gitlab::Git::GitalyRemoteRepository.new(request.remote_repository, call) - result = repo.fetch_repository_as_mirror(remote_repo) + result = repo.fetch_repository_as_mirror(remote_repo, git_config_options: ["'transfer.hideRefs=!refs'"]) Gitaly::FetchInternalRemoteResponse.new(result: result) end diff --git a/ruby/lib/gitlab/git/repository.rb b/ruby/lib/gitlab/git/repository.rb index e269ea72ca0213db6ef463a27472db0090a4d48c..295e2a1425414a7dc3d4bc3b74a9a8d8e5677c16 100644 --- a/ruby/lib/gitlab/git/repository.rb +++ b/ruby/lib/gitlab/git/repository.rb @@ -685,12 +685,12 @@ module Gitlab Gitlab::Git::Blob.find(self, sha, path) unless Gitlab::Git.blank_ref?(sha) end - def fetch_repository_as_mirror(repository) + def fetch_repository_as_mirror(repository, git_config_options: []) remote_name = "tmp-#{SecureRandom.hex}" repository = RemoteRepository.new(repository) unless repository.is_a?(RemoteRepository) add_remote(remote_name, GITALY_INTERNAL_URL, mirror_refmap: :all_refs) - fetch_remote(remote_name, env: repository.fetch_env) + fetch_remote(remote_name, env: repository.fetch_env(git_config_options: git_config_options)) ensure remove_remote(remote_name) end