Summary
Remove shell-out usage of the git binary from gitstore-git-service and eliminate the runtime git package dependency from docker/git-service.Dockerfile. All supported Git smart HTTP operations should execute in-process.
Current shell-outs exist in gitstore-git-service/src/http_git_server.rs for:
git upload-pack --advertise-refs
git receive-pack --advertise-refs
git upload-pack --stateless-rpc
git receive-pack --stateless-rpc
Scope
In Scope
- Replace all
std::process::Command::new("git") call sites in gitstore-git-service with in-process implementations.
- Remove the runtime
git package installation from docker/git-service.Dockerfile.
- Ensure HTTP smart protocol clone/fetch/push still works end-to-end after the migration.
- Keep error reporting and status propagation compatible with current client expectations.
- Add integration coverage proving the git-service image works without the
git binary present.
Out of Scope
- Implementing SSH transport.
- Validation/admission policy semantics themselves.
- Proxy or ingress changes.
Acceptance Criteria
Dependencies
Tracking
Summary
Remove shell-out usage of the
gitbinary fromgitstore-git-serviceand eliminate the runtimegitpackage dependency fromdocker/git-service.Dockerfile. All supported Git smart HTTP operations should execute in-process.Current shell-outs exist in
gitstore-git-service/src/http_git_server.rsfor:git upload-pack --advertise-refsgit receive-pack --advertise-refsgit upload-pack --stateless-rpcgit receive-pack --stateless-rpcScope
In Scope
std::process::Command::new("git")call sites ingitstore-git-servicewith in-process implementations.gitpackage installation fromdocker/git-service.Dockerfile.gitbinary present.Out of Scope
Acceptance Criteria
Command::new("git")or equivalent shell-out remains ingitstore-git-serviceproduction code.gitstore-git-servicecontainer image does not install thegitpackage.git clone,git fetch, andgit pushover the supported HTTP transport still succeed in automated integration tests.gitbinary available.Dependencies
Tracking