HTTP/2 302
server: nginx
date: Fri, 15 Aug 2025 17:22:24 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20180611013433
location: https://web.archive.org/web/20180611013433/https://github.com/robbyrussell/github-services
server-timing: captures_list;dur=1.434200, exclusion.robots;dur=0.038268, exclusion.robots.policy;dur=0.018081, esindex;dur=0.024263, cdx.remote;dur=101.328872, LoadShardBlock;dur=859.337423, PetaboxLoader3.datanode;dur=103.411183, PetaboxLoader3.resolve;dur=727.456773
x-app-server: wwwb-app215
x-ts: 302
x-tr: 1034
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app215; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Fri, 15 Aug 2025 17:22:26 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: GitHub.com
x-archive-orig-date: Mon, 11 Jun 2018 01:34:20 GMT
x-archive-orig-transfer-encoding: chunked
x-archive-orig-status: 200 OK
x-archive-orig-cache-control: no-cache
x-archive-orig-vary: X-PJAX
x-archive-orig-set-cookie: logged_in=no; domain=.github.com; path=/; expires=Fri, 11 Jun 2038 01:34:20 -0000; secure; HttpOnly
x-archive-orig-set-cookie: _gh_sess=cnBqaDVnOGFyaWNIVnZETlVqZmVrOTdveitZZHcyeGVSS3ZremR0eW1IWDJWZDB3VkJKRGZNUUVhZ1ZvNHo4V1pzbzlRa25wUmpzK3FPWWw4NWRaaDZmL2dHV3NYa0JMdDJZOWcvLy9iT3Y4akUzVGlMVVVNQ25MYWRYL1p4QTFBMHNxRXNOWEorM2NEQXd5RVZNVVN3ZG9CQVh4NWlEQ3d3aVVDMk9oUEI2c1Rzam5HVDlNSzV5MTBNUzljL1pmR2ZFMHNIR2dEaC9RZGJUWGtsNU1qVUlsbG5kSS9kbHF6SHMzTTBKU2I3YmxFRUgyNHdKanFWaGVkb1dsVUZhcllEN0RucHpwekdTQTBoWkZvejc5aDdpbUhuOFpldU9UVHRXZHFjTTRoeGhkNFFhNEMwdlBSSVc5V2p3bHNyY014VHhiSy8ySlRURGlxWVgrbE9uMnNlK2xUakpmTkd2WmRzYlN4MWZXZjg1aUFQUEVaQWlTL1k2WEVWRkszZ2hjSlYxSnpaeGwzVVRqMVpibU5YdEtDTFZqeEVRU1BkeHNteHRNZDNlTnFHUnpGY25KUmpBbkkwTXo0OUhwWHFVRC0tUkNYZTNoQ01xdmVqQkU2WW1XT2FIQT09--cd103dbf78294f705d4e86ced9157178f1403836; path=/; secure; HttpOnly
x-archive-orig-x-request-id: a28f47a5-0498-4aad-aded-31380f24c9e6
x-archive-orig-x-runtime: 0.296609
x-archive-orig-strict-transport-security: max-age=31536000; includeSubdomains; preload
x-archive-orig-x-frame-options: deny
x-archive-orig-x-content-type-options: nosniff
x-archive-orig-x-xss-protection: 1; mode=block
x-archive-orig-expect-ct: max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"
x-archive-orig-content-security-policy: default-src 'none'; base-uri 'self'; block-all-mixed-content; connect-src 'self' uploads.github.com status.github.com collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com; font-src assets-cdn.github.com; form-action 'self' github.com gist.github.com; frame-ancestors 'none'; frame-src render.githubusercontent.com; img-src 'self' data: assets-cdn.github.com identicons.github.com collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com; manifest-src 'self'; media-src 'none'; script-src assets-cdn.github.com; style-src 'unsafe-inline' assets-cdn.github.com
x-archive-orig-x-runtime-rack: 0.306716
x-archive-orig-x-github-request-id: BA42:58F9:53E930A:A049E5E:5B1DD19C
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Mon, 11 Jun 2018 01:34:33 GMT
link:
; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Mon, 11 Jun 2018 01:34:33 GMT", ; rel="memento"; datetime="Mon, 11 Jun 2018 01:34:33 GMT", ; rel="next memento"; datetime="Thu, 26 Nov 2020 03:24:44 GMT", ; rel="last memento"; datetime="Thu, 26 Nov 2020 03:24:44 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: archiveteam_github_20180704062559/archiveteam_github_20180704062559.megawarc.warc.gz
server-timing: captures_list;dur=0.545900, exclusion.robots;dur=0.019554, exclusion.robots.policy;dur=0.009451, esindex;dur=0.011578, cdx.remote;dur=56.809617, LoadShardBlock;dur=396.078480, PetaboxLoader3.datanode;dur=293.751931, PetaboxLoader3.resolve;dur=305.384042, load_resource;dur=297.165804
x-app-server: wwwb-app215
x-ts: 200
x-tr: 862
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
GitHub - robbyrussell/github-services: Official GitHub Services Integration
Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Sign up
New pull request
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
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 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)
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|
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
Running the server locally
[sudo] gem install hpricot
git clone git://github.com/pjhyett/github-services.git
cd github-services
ruby github-services.rb
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.