diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2026-01-12 14:05:51 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2026-01-12 14:05:51 +0000 |
| commit | 817ce37a5ee8d6279a44cf8cce3cc6a1e4bab576 (patch) | |
| tree | 9fd5a6d3969afc33baa900bdab25bff81c5a83a4 /tests/common/git_server.rs | |
| parent | f25eea8cc3b940cbcaa96224485826bfaae82449 (diff) | |
feat: add uploadpack.allowFilter support for GRASP-01 compliance
Add mandatory uploadpack.allowFilter capability to support partial clones
and fetches as required by GRASP-01 specification. This enables efficient
git operations for bandwidth-constrained clients (e.g., browser-based git
clients like git-natural-api).
Changes:
- Add uploadpack.allowFilter=true to git subprocess configuration
- Update SmartGitServer test helper with filter support
- Add integration tests for filter capability advertisement and functionality
- Update documentation to reflect filter as required capability
Tests verify:
- Filter capability is advertised in info/refs
- Filtered clones with blob:none work correctly
- Filtered fetches with tree:0 work correctly
Diffstat (limited to 'tests/common/git_server.rs')
| -rw-r--r-- | tests/common/git_server.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/tests/common/git_server.rs b/tests/common/git_server.rs index 3190901..7634968 100644 --- a/tests/common/git_server.rs +++ b/tests/common/git_server.rs | |||
| @@ -764,6 +764,8 @@ async fn handle_info_refs_upload_pack( | |||
| 764 | .arg("uploadpack.allowReachableSHA1InWant=true") | 764 | .arg("uploadpack.allowReachableSHA1InWant=true") |
| 765 | .arg("-c") | 765 | .arg("-c") |
| 766 | .arg("uploadpack.allowTipSHA1InWant=true") | 766 | .arg("uploadpack.allowTipSHA1InWant=true") |
| 767 | .arg("-c") | ||
| 768 | .arg("uploadpack.allowFilter=true") | ||
| 767 | .arg("upload-pack") | 769 | .arg("upload-pack") |
| 768 | .arg("--advertise-refs") | 770 | .arg("--advertise-refs") |
| 769 | .arg("--stateless-rpc"); | 771 | .arg("--stateless-rpc"); |
| @@ -854,6 +856,8 @@ async fn handle_upload_pack( | |||
| 854 | .arg("uploadpack.allowReachableSHA1InWant=true") | 856 | .arg("uploadpack.allowReachableSHA1InWant=true") |
| 855 | .arg("-c") | 857 | .arg("-c") |
| 856 | .arg("uploadpack.allowTipSHA1InWant=true") | 858 | .arg("uploadpack.allowTipSHA1InWant=true") |
| 859 | .arg("-c") | ||
| 860 | .arg("uploadpack.allowFilter=true") | ||
| 857 | .arg("upload-pack") | 861 | .arg("upload-pack") |
| 858 | .arg("--stateless-rpc"); | 862 | .arg("--stateless-rpc"); |
| 859 | 863 | ||