From 817ce37a5ee8d6279a44cf8cce3cc6a1e4bab576 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Mon, 12 Jan 2026 14:05:51 +0000 Subject: 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 --- tests/common/git_server.rs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'tests/common/git_server.rs') 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( .arg("uploadpack.allowReachableSHA1InWant=true") .arg("-c") .arg("uploadpack.allowTipSHA1InWant=true") + .arg("-c") + .arg("uploadpack.allowFilter=true") .arg("upload-pack") .arg("--advertise-refs") .arg("--stateless-rpc"); @@ -854,6 +856,8 @@ async fn handle_upload_pack( .arg("uploadpack.allowReachableSHA1InWant=true") .arg("-c") .arg("uploadpack.allowTipSHA1InWant=true") + .arg("-c") + .arg("uploadpack.allowFilter=true") .arg("upload-pack") .arg("--stateless-rpc"); -- cgit v1.2.3