:octocat: Save all your GitHub data to one place, private & public. A Webhook.
JavaScript Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
script
.gitignore
Procfile
README.md
index.js
package.json

README.md

all your github are belong to us

GitHub is a fantastic tool — I use it constantly. I'd like to understand more of how I work on GitHub, but I don't have all my data. I can setup an RSS hook on my public feed, but I do a lot of work on private repos as well.

This webapp is a simple data collector: add it to repos in question and it'll log everything you do on that repo into a MongoDB database. Each collection is named after the event type. Pretty cool, huh?

Installation

Simple, just run script/bootstrap from your clone.

You might need to create a token. Run script/generator and follow the necessary prompts. Keep a record of this token — you'll need it for later configuration. Hell, save it to a .env file, why don't ya?

Deployment

I use Heroku because I'm obsessed with how easy it is to use. I also use hk because Go is freaking awesome. Download hk then run the following:

$ hk create my-github-log-app-thingy
$ hk addon-add mongohq
$ hk set GITHUB_USERNAME=your-username
$ hk set GITHUB_TOKEN=abc123
$ hk set AYGABTU_URL=http://my-github-log-app-thingy.herokuapp.com

Then you'll have to tell your aggregator which events you care about. You can view all the events here. Now, take the events you want and construct a JSON array. Then, set a string'd version of that as your GITHUB_HOOK_EVENTS:

$ hk set GITHUB_HOOK_EVENTS='["push","pull_request"]' # just an example!

Then deploy your code:

$ git push heroku master

Fetching data

It's all in Mongo. Now it's your job to get and understand it.

API endpoints are still in progress. Wanna help? Check out issue #2.