/tracker_github_hook

A GitHub post-receive hook service for integrating GitHub commits with Pivotal Tracker

Primary LanguageRuby

This app is a small server to serve as a GitHub Post-Receive hook to add 
comments, and update state in Pivotal Tracker, similar to say the Lighthouse
service integration.

Configure your Tracker API key, and Project ID in a config.yml file placed in 
the same directory as this app.  It should look something like:

tracker_github_hook:
  github_url: 'http://github.com/chris/tracker_github_hook'
  tracker_api_token: a1230e72340e3babc96d5e2fab67c18d
  tracker_project_id: 123
  
The label ('tracker_github_hook' in this case) is arbitrary and not used, it's
just their to be a useful bit of info to humans/organize the nested settings, 
and is not used.  This setup allows you to have one service that supports
multiple Tracker/GitHub projects, just define one of the above blocks for each
one, and then anytime GitHub sends a push, the service will tease out which
GitHub repo it came from and correlate that to which Tracker project you've
assigned to that.

When you make commits to Git/GitHub, and want a comment and optionally a state 
update made to a story in Tracker, add the following text to your commit 
message:
    
    [Story#####]
    
or

    [Story##### state:finished]

where ##### is the story number (see the bottom of an expanded story in 
Tracker for its ID).

This project also requires the following rubygems:
- sinatra
- rest-client
- json


More information for, and thanks to:

Pivotal Tracker API: http://www.pivotaltracker.com/help/api
GitHub Post-Receive Hooks: http://github.com/guides/post-receive-hooks
Sinatra: http://sinatra.rubyforge.org/
RestClient: http://rubyforge.org/projects/rest-client/


TODO:
- cleanup, better testing
- support other story changes, like assigned user, etc.