Git.io: GitHub URL Shortener

Do you have a GitHub URL you’d like to shorten? Use Git.io! $ curl -i https://git.io -F “url=https://github.com/…” HTTP/1.1 201 Created Location: https://git.io/abc123 $ curl -i https://git.io/abc123 HTTP/1.1 302 Found…

|
| 1 minutes

Do you have a GitHub URL you’d like to shorten? Use Git.io!

$ curl -i https://git.io -F "url=https://github.com/..."
HTTP/1.1 201 Created
Location: https://git.io/abc123

$ curl -i https://git.io/abc123
HTTP/1.1 302 Found
Location: https://github.com/...

You can specify your own code to setup your own vanity URL:

$ curl -i https://git.io -F "url=https://github.com/technoweenie" 
    -F "code=t"
HTTP/1.1 201 Created
Location: https://git.io/t

You can currently see Git.io in action on certain 3rd party services, such as Campfire.

The Code

Git.io was written and deployed by myself and @atmos as a big experiment. Our goals:

  • Use Riak.
  • Deploy on Rackspace Cloud.

You can assemble your own with Guillotine, the URL shortening hobby kit. It’s written in Ruby as a Sinatra app, and supports storing links in Riak or a relational DB.

Though a URL shortener is about the easiest project one could take on, it gave us a chance to experiment. As a result, I’ve been able to spread my excitement about Riak to more people at GitHub. The Riak 1.0 upgrade gave us a chance to experiment with a rolling upgrade across our cluster (for the new version, and the new leveldb backend). We also have better support with our Hubot and puppet scripts for managing deployments through Rackspace Cloud.

Related posts