Official GitHub Services Integration
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 3246 commits behind github:master.
carview.php?tsp= Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
carview.php?tsp= docs
carview.php?tsp= services
carview.php?tsp= spec
carview.php?tsp= vendor
carview.php?tsp= .gitignore
carview.php?tsp= CONTRIBUTORS
carview.php?tsp= LICENSE
carview.php?tsp= README.mkdn
carview.php?tsp= Rakefile
carview.php?tsp= github-services.rb

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 https://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

Running the server locally

  1. [sudo] gem install hpricot
  2. git clone git://github.com/pjhyett/github-services.git
  3. cd github-services
  4. ruby github-services.rb