public
Description: Official GitHub Services Integration
Homepage: http://github.com/blog/53-github-services-ipo
Clone URL: git://github.com/pjhyett/github-services.git
Search Repo:
name age message
folder .gitignore Mon Jun 16 11:46:14 -0700 2008 damn you DS_Store [pjhyett]
folder CONTRIBUTORS Wed Jul 23 16:23:16 -0700 2008 say thanks [pjhyett]
folder LICENSE Mon Jul 14 01:30:49 -0700 2008 add LICENSE [pjhyett]
folder README.mkdn Thu Jul 10 17:46:13 -0700 2008 break out contributors into a separate file [pjhyett]
folder Rakefile Tue May 06 02:08:47 -0700 2008 Added Rakefile with a RSpec task to make runnin... [lukeredpath]
folder docs/ Wed Jul 23 16:03:19 -0700 2008 Merge branch 'master' of git://github.com/shoe/... [pjhyett]
folder github-services.rb Sat Jul 19 14:54:34 -0700 2008 Fix CIA timestamp (I think) [tekkub]
folder services/ Wed Jul 23 16:51:46 -0700 2008 Merge branch 'tekkub/master' [pjhyett]
folder spec/ Tue May 06 02:08:47 -0700 2008 Added Rakefile with a RSpec task to make runnin... [lukeredpath]
folder vendor/ Wed Jun 11 03:16:44 -0700 2008 one more require conflict [pjhyett]
README.mkdn

GitHub Services

How the services work

  1. A post-receive background job is submitted when someone pushes their commits to GitHub
  2. 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)
  3. Sinatra (github-services.rb) processes the request (twitters your data, says something in campfire, posts it to lighthouse, etc)
  4. Rinse and repeat

Steps to contributing

  1. Fork the project
  2. Create a new file in /services/ called service_name.rb, using the following template:

    service :service_name do |data, payload|
    end
    
  3. Vendor any external gems your code relies on, and make sure to include it in the requires at the top of github-services.rb

  4. Add documentation to docs/service_name (refer to the others for guidance)
  5. Send us a pull request
  6. 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: Lighthouse