We are finishing up a new GitHub Services backend, dubbed “Hookshot”, to
increase the speed and reliability of our delivered payloads. We are doing
what we can to make this a seamless transition for everyone. However, there
are a few notable changes.
- There is a new Meta API endpoint
listing the current public IPs that hooks originate from.
- We’re removing the AMQP service from GitHub. It hasn’t worked in quite some
time, and the code it uses doesn’t work in our background workers.
- We’re also instituting a new guideline to improve the reliability and
maintainability of services in the future. As of today, all new services must
accept an unmodified payload over HTTP. Any service that does not will be
rejected. To see an example of an acceptable service, check out Code Climate.
Notice their service simply acccepts HTTP POST from GitHub unmodified. For an
example of a service that won’t be accepted after today, check out Campfire. It
uses other Ruby gems and contains custom logic to transform the GitHub payload
to Campfire messages. Existing hooks will keep working (don’t worry 37signals, we
We’re making these changes because we want to focus on the reliability of the
core Services backend for everyone. Maintaining custom logic and libraries for
over 100 services is taking too much of this focus away. Subscribe to our API
Changes blog for more updates.