feat(pack): add raw advertise refs and stateless protocol support

- Add raw flag to AdvertiseRefsRequest to enable raw pkt-line output
- Implement advertise_refs_raw function that calls git upload-pack/receive-pack with --advertise-refs
- Add stateless flag to GitProtocolFeatures for HTTP smart protocol support
- Modify upload_pack and receive_pack to accept stateless parameter
- Update command construction to include --stateless-rpc flag when enabled
- Add raw_data field to AdvertiseRefsResponse for raw output
- Update pack cache key computation to include raw service differentiation
- Initialize raw field to false in all request creation calls
This commit is contained in:
zhenyi
2026-06-08 21:46:31 +08:00
parent eeb4d9f902
commit ab32e8826e
8 changed files with 99 additions and 16 deletions
+3
View File
@@ -10,6 +10,7 @@ message GitProtocolFeatures {
repeated string capabilities = 2;
repeated string server_options = 3;
repeated string agent = 4;
bool stateless = 5;
}
message ReferenceAdvertisement {
@@ -24,11 +25,13 @@ message AdvertiseRefsRequest {
RepositoryHeader repository = 1;
GitProtocolFeatures protocol = 2;
string service = 3;
bool raw = 4;
}
message AdvertiseRefsResponse {
repeated ReferenceAdvertisement references = 1;
repeated string capabilities = 2;
bytes raw_data = 3;
}
message UploadPackRequest {