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
DiffBlobobjects. - Introduced a new service, i.e.
DiffServiceinGitlab::GitalyClient. - Introduced a new class to stitch
DiffBlobobjects together asDiffBlobsResponseis 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