Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

git-http-server2

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

git-http-server2

Fork of git-http-server. Serve a directory of Git repositories over HTTP

  • 0.1.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
decreased by-50%
Maintainers
1
Weekly downloads
 
Created
Source

Git HTTP server

Serve a directory tree of Git repositories over HTTP.

This tool is a thin wrapper around git-http-backend.

Use it in your package

Install it with

npm install --save git-http-server2

Then, in your program, for example:

var gitServer = require('git-http-server2');

var server = gitServer.run({
  ip: '129.77.66.122',
  port: 5167,
  dir: '/Users/bob/repos',
});

... do a bunch of stuff ...

server.close();

Command line

To set it up to use from the command line:

npm install -g git-http-server2

For usage information:

git-http-server2 --help

Options can be controlled via the command-line (highest precedence) or environment variables. These are also describe in the usage message:

usage: git-http-server2 [-r] [-p port] [-H host] [dir]

options

  -h, --help           print this message and exit
  -i, --ip             [env GIT_HTTP_IP] IP address of the allowed client
  -H, --host <host>    [env GIT_HTTP_HOST] host on which to listen
  -p, --port <port>    [env GIT_HTTP_PORT] port on which to listen
  -r, --readonly       [env GIT_HTTP_READONLY] operate in read-only mode
  -a, --allowcreation [env GIT_HTTP_ALLOWCREATION] allows pushing unknown repositories
  -u, --updates        check for available updates and exit
  -v, --version        print the version number and exit

Examples

Start the server with one repository:

$ mkdir served && cd served
$ git init --bare foo.git
Initialized empty Git repository in /Users/.../repos/foo.git/
$ git-http-server2
listening on http://0.0.0.0:8174 in /Users/.../repos

Now, from another terminal, clone the empty repository:

$ mkdir clones && cd clones
$ git clone http://127.0.0.1:8174/foo.git
Cloning into 'foo'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

Add do some git stuff in the clone:

$ cd foo
$ touch bar
$ git add bar
$ git commit -m 'initial commit' bar
[master (root-commit) 9a37778] initial commit ...
$ git push origin master
Counting objects: 3, done
...
* [new branch]      master -> master

Meanwhile, back in the server terminal, the logs look like:

127.0.0.1 - - [28/Mar/2015:22:45:51 -0400] "GET /foo.git/..."
127.0.0.1 - - [28/Mar/2015:22:46:44 -0400] "GET /foo.git/..."
127.0.0.1 - - [28/Mar/2015:22:46:44 -0400] "POST /foo.git/..."

Development

Clone the repo, then:

npm install
npm test

About this fork

The main changes in this fork are:

  • The addition of a switch to restrict the clients by IP address
  • Added a programmatic interface - see test/test.js for an example.
  • Addition of tests

License

MIT License

Keywords

FAQs

Package last updated on 14 Aug 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc