Support Gitaly's DiffService.DiffBlobs RPC
What does this MR do and why?
This merge request adds support for Gitaly's newly introduced DiffService.DiffBlobs()
RPC:
- Introduced a new entity to represent
DiffBlob
objects. - Introduced a new service, i.e.
DiffService
inGitlab::GitalyClient
. - Introduced a new class to stitch
DiffBlob
objects together asDiffBlobsResponse
is streamed back from Gitaly.
This builds the groundwork necessary for !158984 (merged) which updates Secret Push Protection to scan diffs instead of entire files.
Note: This requires Gitaly v17.2+, as patch_bytes_limit
(used to filter out diffs larger than 1MB) was added in the 17.2 release.
Resolves #469161 (closed) partially.
MR acceptance checklist
I have evaluated this MR against the MR acceptance checklist.
Edited by Ahmed Hemdan