Post hook is currently setup to run under Phusion Passenger (though not required) for use with Github service hooks.
Post hook relies on a number of rubygems: sinatra - well to run, it's a sinatra app after all rack - for logging active_support - for JSON parsing popen4 - for running shell commands and capturing the return values
Current as of Wednesday, August 26th, 2009. See http://github.com/guides/post-receive-hooks for most up to date definition
{
:before => before,
:after => after,
:ref => ref,
:commits => [{
:id => commit.id,
:message => commit.message,
:timestamp => commit.committed_date.xmlschema,
:url => commit_url,
:added => array_of_added_paths,
:removed => array_of_removed_paths,
:modified => array_of_modified_paths,
:author => {
:name => commit.author.name,
:email => commit.author.email
}
}],
:repository => {
:name => repository.name,
:url => repo_url,
:pledgie => repository.pledgie.id,
:description => repository.description,
:homepage => repository.homepage,
:watchers => repository.watchers.size,
:forks => repository.forks.size,
:private => repository.private?,
:owner => {
:name => repository.owner.login,
:email => repository.owner.email
}
}
}
{ "before": "5aef35982fb2d34e9d9d4502f6ede1072793222d", "repository": { "url": "http://github.com/defunkt/github", "name": "github", "description": "You're lookin' at it.", "watchers": 5, "forks": 2, "private": 1, "owner": { "email": "chris@ozmm.org", "name": "defunkt" } }, "commits": [ { "id": "41a212ee83ca127e3c8cf465891ab7216a705f59", "url": "http://github.com/defunkt/github/commit/41a212ee83ca127e3c8cf465891ab7216a705f59", "author": { "email": "chris@ozmm.org", "name": "Chris Wanstrath" }, "message": "okay i give in", "timestamp": "2008-02-15T14:57:17-08:00", "added": ["filepath.rb"] }, { "id": "de8251ff97ee194a289832576287d6f8ad74e3d0", "url": "http://github.com/defunkt/github/commit/de8251ff97ee194a289832576287d6f8ad74e3d0", "author": { "email": "chris@ozmm.org", "name": "Chris Wanstrath" }, "message": "update pricing a tad", "timestamp": "2008-02-15T14:36:34-08:00" } ], "after": "de8251ff97ee194a289832576287d6f8ad74e3d0", "ref": "refs/heads/master" }