gogive is a tool that establishes an arbitrary mapping between a list of import paths and their source control repositories for use with the `go get` tool. This allows you to, for example, construct meaningful import paths under your own site name, such as import "example.org/net/lldp" While still taking advantage of third-party code hosting sites like github, which offer a lot in terms of scalability and collabaration tools (issues, etc). To run `gogive`, create a configuration file with lines of the form prefix vcs repo Where `prefix` is the import path prefix, `vcs` is the version control tool, and `repo` is the url of the actual source repository. Then run `gogive`: $ gogive /path/to/gogive-config-file For use as a service, run it under a supervisor such as Upstart, daemontools, supervisord, or systemd.
gogive is a tool to serve vanity import paths for Go programs.
gogive [-a addr] file
gogive will bind to the address specified by addr, or :9625 if none is specified, and serve HTTP requests issued by the go tool as described in https://golang.org/cmd/go/#hdr-Remote_import_paths
File must be a utf-8 encoded plain text file containing path redirect specifications, one per line, of the form
/path vcs vcsrepo
HTTP GET requests of the form /path?go-get=1 will receive an html page with the following meta tag:
<meta name="go-import" content="example.com/path vcs vcsrepo">
Note that gogive will use the value of the Host: header in the HTTP request in the output HTML. HTTP requests that do not contain the "go-get" query parameter will be redirected to godoc.org.