Gitreceive is a lightweight server utility for accepting arbitrary Git pushes and passing the received code to custom deployment or processing logic. It creates an SSH-accessible Git user and dynamically generates bare repositories when new repository names are pushed. Each repository receives a special pre-receive hook that invokes a general receiver script. That script receives repository, revision, user, and SSH-key information and can run any server-side workflow the operator chooses. Pushed repository contents are streamed to the receiver through standard input as an uncompressed archive. SSH public keys are associated with usernames and installed with forced commands so Git requests are intercepted safely by the receiver. Output from the processing script can be streamed back to the developer during the original git push, making the tool suitable for deployment platforms and custom Git-based automation.
Features
- On-demand bare Git repository creation
- SSH-based Git push reception
- Automatic pre-receive hook installation
- Custom receiver script execution
- Public-key user identification and forced commands
- Real-time processing output returned through git push