Replacing GitHub Services

We are deprecating GitHub Services in favor of integrating with webhooks. This guide helps you transition to webhooks from GitHub Services. For more information on this announcement, see the blog post.

Deprecation timeline

  • May 31, 2018: Deadline to submit your intentions for migrating or replacing your GitHub Service.
  • October 1, 2018: GitHub discontinues allowing users to install services. GitHub Services will be removed from the GitHub.com user interface.
  • January 31, 2019: GitHub stops delivering installed services' events on GitHub.com.

GitHub Services background

GitHub Services (sometimes referred to as Service Hooks) is the legacy method of integrating where GitHub hosted a portion of our integrator’s services via the github-services repository. Actions performed on GitHub trigger these services, and you can use these services to trigger actions outside of GitHub.

GitHub Services vs. webhooks

The key differences between GitHub Services and webhooks:

  • Configuration: GitHub Services have service-specific configuration options, while webhooks are simply configured by specifying a URL and a set of events.
  • Custom logic: GitHub Services can have custom logic to respond with multiple actions as part of processing a single event, while webhooks have no custom logic.
  • Types of requests: GitHub Services can make HTTP and non-HTTP requests, while webhooks can make HTTP requests only.

Replacing Services with webhooks

To replace GitHub Services with Webhooks:

  1. Identify the relevant webhook events you’ll need to subscribe to from this list.

  2. Change your configuration depending on how you currently use GitHub Services:

    • GitHub Apps: Update your app's permissions and subscribed events to configure your app to receive the relevant webhook events.
    • OAuth Apps: Request either the repo_hook and/or org_hook scope(s) to manage the relevant events on behalf of users.
    • GitHub Service providers: Request that users manually configure a webhook with the relevant events sent to you, or take this opportunity to build an app to manage this functionality. For more information, see "About apps."
  3. Move additional configuration from outside of GitHub. Some GitHub Services require additional, custom configuration on the configuration page within GitHub. If your service does this, you will need to move this functionality into your application or rely on GitHub or OAuth Apps where applicable.

Supporting GitHub Enterprise

The GitHub Enterprise release that ships after October 1, 2018 will be the first release with the GitHub Services deprecation. We support GitHub Enterprise for a year following its release, but we will only support GitHub Services until October 1, 2019. We will also accept any critical patches for your Service running on GitHub Enterprise until October 1, 2019.

Migrating with our help

Each migration will be unique so we don’t have a prescriptive process to deliver. However, the GitHub Ecosystem Engineering team is here as a resource to your team. Please feel free to reach out to us with any questions you have along the way.

To understand the process of migration:

  1. Identify how and where your product is using GitHub Services.
  2. Identify the corresponding webhook events you need to configure in order to move to plain webhooks.
  3. Schedule time to talk with us to resolve any specific questions you have on migration by emailing partnerengineering@github.com.