@fuubi/node-git-http-backend
v0.0.1
Published
Git HTTP Backend CGI binding for Node.js
Downloads
3
Readme
Node Git HTTP Backend
This module makes the git-http-backend
functionalities available for Node.js HTTP Servers,
by piping the HTTP Request through the Common Gateway Interface (CGI). It does not set all variables
defined by RFC 3875. Instead, it only defines
the minimum set of variables required by the git-http-backend
.
Usage
Install git-core
- $
sudo apt-get install git-core
(for Ubuntu)
- $
Check if you can run the command
git-http-backend
- Run $
/usr/lib/git-core/git-http-backend
- This path may differ for you.
- Should output:
Status: 500 Internal Server Error Expires: Fri, 01 Jan 1980 00:00:00 GMT Pragma: no-cache Cache-Control: no-cache, max-age=0, must-revalidate
- Hopefully, this is the last error message you see 😉.
- Run $
Create a bare git repository
Serve
/home/alice/cool-stuff.git
with your Node.js HTTP Server- This example uses the default config and handler to create the server.
import * as http from 'http' import { defaultConfig , requestHandler } from 'node-git-http-backend' const config = defaultConfig ( '/usr/lib/git-core/git-http-backend' , '/home/alice/cool-stuff.git' ) http.createServer ( requestHandler ( config ) ) .listen ( 3333 , () => console.log ( `Git backend listening to port 3333.\n` + 'If you ran, "npm run-script init-dev-env".\n' + 'You should be able to clone the test repository with:\n' + 'git clone http://localhost:3333/test.git' ) )
- Usually, it is not desired to let everybody push to a repository 😈. Therefore you have to implement some middleware logic that makes sure only authenticated users are allowed to pull or push, depending on how you want the repository to be accessible. Please have a look at the git-http-backend documentation.
Dev
Just run the following commands.
npm run-script init-dev-env
npm run-script dev