diff options
Diffstat (limited to 'lib/gitlab/gitaly_client/blob_service.rb')
-rw-r--r-- | lib/gitlab/gitaly_client/blob_service.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/gitlab/gitaly_client/blob_service.rb b/lib/gitlab/gitaly_client/blob_service.rb index e4c8dc150a5..362ecbd845d 100644 --- a/lib/gitlab/gitaly_client/blob_service.rb +++ b/lib/gitlab/gitaly_client/blob_service.rb @@ -19,6 +19,25 @@ module Gitlab consume_blob_response(response) end + def list_blobs(revisions, limit: 0, bytes_limit: 0, dynamic_timeout: nil) + request = Gitaly::ListBlobsRequest.new( + repository: @gitaly_repo, + revisions: Array.wrap(revisions), + limit: limit, + bytes_limit: bytes_limit + ) + + timeout = + if dynamic_timeout + [dynamic_timeout, GitalyClient.medium_timeout].min + else + GitalyClient.medium_timeout + end + + response = GitalyClient.call(@gitaly_repo.storage_name, :blob_service, :list_blobs, request, timeout: timeout) + GitalyClient::BlobsStitcher.new(GitalyClient::ListBlobsAdapter.new(response)) + end + def batch_lfs_pointers(blob_ids) return [] if blob_ids.empty? |