This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Wed Jul 09 22:18:36 -0700 2008 | |
| |
CONTRIBUTORS | Tue Sep 15 12:11:22 -0700 2009 | |
| |
LICENSE | Mon Jul 14 01:30:49 -0700 2008 | |
| |
README.mkdn | Thu Oct 08 16:17:49 -0700 2009 | |
| |
Rakefile | Tue May 06 02:08:47 -0700 2008 | |
| |
config/ | Tue Nov 03 16:48:02 -0800 2009 | |
| |
docs/ | Thu Nov 12 06:30:11 -0800 2009 | |
| |
github-services.rb | Thu Oct 08 16:47:26 -0700 2009 | |
| |
script/ | Wed Sep 02 15:08:13 -0700 2009 | |
| |
services/ | Thu Nov 12 18:16:18 -0800 2009 | |
| |
spec/ | Wed Feb 04 05:31:21 -0800 2009 | |
| |
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 github-services Sinatra server with
ruby github-services.rb. By default, it runs on port 8080. - Edit the doc/github_payload file as necessary to test your service. (Usually just editing the "data" values but leaving the "payload" alone.)
- Send the doc/github_payload file to your service by calling:
./script/deliver_payload [service-name]
NOTE: The name of the service and your docs/ file matters. If your service is RunCodeRun, your service
and docs MUST be run_code_run. Good luck!







