Replacing GitHub Services

We have deprecated 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

  • October 1, 2018: GitHub discontinued allowing users to install services. We removed GitHub Services from the user interface.
  • January 31, 2019: GitHub will stop delivering installed services' events on

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

  • GitHub Enterprise 2.17: GitHub Enterprise release 2.17 and higher will discontinue allowing admins to install services.
  • GitHub Enterprise 2.20: GitHub Enterprise release 2.20 and higher will stop delivering all installed services' events.

The GitHub Enterprise 2.17 release will be the first release that does not allow admins to install GitHub Services. We will only support existing GitHub Services until the GitHub Enterprise 2.20 release. We will also accept any critical patches for your GitHub 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