You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Move the Git smart HTTP server out of gitstore-git-service and into gitstore-api, exposing it on a dedicated port (5000) that is separate from the GraphQL/REST API routes on port 4000. gitstore-git-service retains only its gRPC interface and storage responsibilities. Only the transport is implemented in gitstore-api, the git operations will be delegated via gRPC to gitstore-git-service (see #109).
This supersedes #63 (which proposed retaining smart HTTP inside git-service on port 5000) and requires #65 (gRPC Git Service) to be completed first so the smart HTTP layer can delegate operations to git-service via gRPC.
GET /{namespace}/{repo} (non-git)Makes sense for the UI (Storefront/Admin)
GET /{namespace}/{repo}.git redirects to /{namespace}/{repo} (non-git)Makes sense for the UI (Storefront/Admin)
GET /{namespace}/{repo}/info/refs?service=git-upload-pack
GET /{namespace}/{repo}.git/info/refs?service=git-upload-pack
GET /{namespace}/{repo}/info/refs?service=git-receive-pack
GET /{namespace}/{repo}.git/info/refs?service=git-receive-pack
POST /{namespace}/{repo}/git-upload-pack
POST /{namespace}/{repo}.git/git-upload-pack
POST /{namespace}/{repo}/git-receive-pack
POST /{namespace}/{repo}.git/git-receive-pack
#100 and #70 provides the needed functionality to lookup repository identity and storage path from the database for downstream calls to git-service over RPC.
Scope
In Scope
Implement Git smart HTTP protocol (git-upload-pack, git-receive-pack, info/refs) inside gitstore-api, running on port 5000.
Summary
Move the Git smart HTTP server out of
gitstore-git-serviceand intogitstore-api, exposing it on a dedicated port (5000) that is separate from the GraphQL/REST API routes on port 4000.gitstore-git-serviceretains only its gRPC interface and storage responsibilities. Only the transport is implemented ingitstore-api, the git operations will be delegated via gRPC togitstore-git-service(see #109).Implementation Notes
After #39 then the endpoint should support:
Makes sense for the UI (Storefront/Admin)GET /{namespace}/{repo}(non-git)Makes sense for the UI (Storefront/Admin)GET /{namespace}/{repo}.gitredirects to/{namespace}/{repo}(non-git)GET /{namespace}/{repo}/info/refs?service=git-upload-packGET /{namespace}/{repo}.git/info/refs?service=git-upload-packGET /{namespace}/{repo}/info/refs?service=git-receive-packGET /{namespace}/{repo}.git/info/refs?service=git-receive-packPOST /{namespace}/{repo}/git-upload-packPOST /{namespace}/{repo}.git/git-upload-packPOST /{namespace}/{repo}/git-receive-packPOST /{namespace}/{repo}.git/git-receive-pack#100 and #70 provides the needed functionality to lookup repository identity and storage path from the database for downstream calls to git-service over RPC.
Scope
In Scope
git-upload-pack,git-receive-pack,info/refs) insidegitstore-api, running on port 5000.gitstore-git-servicevia the gRPC layer introduced in [Initiative] Decouple API from Git Storage via gRPC Git Service #65.gitstore-git-service.http://api:5000/<org>/<repo>).git clone,git fetch, andgit pushover HTTP on port 5000.Out of Scope
Acceptance Criteria
git clone http://localhost:5000/<org>/<repo>[.git]succeeds end-to-end.git pushandgit fetchover HTTP on port 5000 work correctly.gitstore-git-serviceno longer exposes a standalone smart HTTP server.gitstore-apilistens on port 4000 (GraphQL) and port 5000 (Git smart HTTP) simultaneously.git://scheme remains in Compose files, scripts, or documentation.Dependencies
Tracking