jessmartin / github-services forked from pjhyett/github-services
- Source
- Commits
- Network (62)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Wed Jul 09 22:18:36 -0700 2008 | |
| |
CONTRIBUTORS | ||
| |
LICENSE | Mon Jul 14 01:30:49 -0700 2008 | |
| |
README.mkdn | ||
| |
Rakefile | Tue May 06 02:08:47 -0700 2008 | |
| |
docs/ | ||
| |
github-services.rb | Fri Jun 12 15:29:06 -0700 2009 | |
| |
services/ | ||
| |
spec/ | Wed Nov 12 11:49:45 -0800 2008 | |
| |
vendor/ | Tue Apr 28 18:15:54 -0700 2009 |
README.mkdn
GitHub Services
How the services work
- A post-receive background job is submitted when someone pushes their commits to GitHub
- If the repository the commits belong to has any "Service Hooks" setup, the job makes a request to
http://services-server/service_name/with the following data:params[:payload]containing all of the commit data (the same data you get using the API)params[:data]containing the service data (username, password, room, etc)
- Sinatra (github-services.rb) processes the request (twitters your data, says something in campfire, posts it to lighthouse, etc)
- Rinse and repeat
Steps to contributing
- Fork the project
Create a new file in /services/ called
service_name.rb, using the following template:service :service_name do |data, payload| endVendor any external gems your code relies on, and make sure to include it in the requires at the top of github-services.rb
- Add documentation to
docs/service_name(refer to the others for guidance) - Add your name to the
CONTRIBUTORSfile
- Create an Issue at http://github.com/pjhyett/github-services/issues with links to each commit you want included.
- Once it's accepted we'll add any new necessary data fields to the GitHub front-end so people can start using your addition.
Patches including tests are encouraged
Running the server locally
- [sudo] gem install hpricot
- git clone git://github.com/pjhyett/github-services.git
- cd github-services
ruby github-services.rb
Bugs in the code should be filed under the Issues tab
- Problems with the service hooks can be filed here: http://support.github.com/discussions/post-receive-issues
How to test your service
- Start the local server using
ruby github-services.rb. By default, it runs on port 8080. Test your service by posting to http://localhost:8080/service_name/ with the params example found in docs/github_payload
Example using curl:
curl -F "data={}¶ms={}" http://localhost:8080/service_name/That should trigger a request to your service which will send your server the payload.

