- 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
-
Fork the project
-
Create a new file in /services/ called
service_name.rb
, using the following template:service :service_name do |data, payload| end
-
Vendor 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) -
Send us a pull request
-
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
Bugs can be filed here: http://support.github.com/discussions/post-receive-issues