tree: 9d493af1590ec57fe51d263e1d3b1f38df9ba3eb [path history] [tgz]
  1. .gcloudignore
  2. .travis.yml
  3. app.yaml
  4. appengine.go
  5. CONTRIBUTING.md
  6. handler.go
  7. handler_test.go
  8. LICENSE
  9. README.chrome_infra
  10. README.md
  11. vanity.yaml
go/src/infra/third_party/govanityurls/README.md

Go Vanity URLs

Go Vanity URLs is a simple App Engine Go app that allows you to set custom import paths for your Go packages.

Quickstart

Install gcloud and install Go App Engine component:

$ gcloud components install app-engine-go

Setup a custom domain for your app.

Get the application:

go get -u -d github.com/GoogleCloudPlatform/govanityurls
cd $(go env GOPATH)/src/github.com/GoogleCloudPlatform/govanityurls

Edit vanity.yaml to add any number of git repos. E.g., customdomain.com/portmidi will serve the https://github.com/rakyll/portmidi repo.

paths:
  /portmidi:
    repo: https://github.com/rakyll/portmidi

You can add as many rules as you wish.

Deploy the app:

$ gcloud app deploy

That's it! You can use go get to get the package from your custom domain.

$ go get customdomain.com/portmidi

Running in other environments

You can also deploy this as an App Engine Flexible app by changing the app.yaml file:

runtime: go
env: flex

This project is a normal Go HTTP server, so you can also incorporate the handler into larger Go servers.

Configuration File

host: example.com
cache_max_age: 3600
paths:
  /foo:
    repo: https://github.com/example/foo
    display: "https://github.com/example/foo https://github.com/example/foo/tree/master{/dir} https://github.com/example/foo/blob/master{/dir}/{file}#L{line}"
    vcs: git

Path Configuration