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.

As an alternative to the email service, you can now start using email notifications for pushes to your repository. See "About email notifications for pushes to your repository" in the GitHub Help documentation to learn how to configure commit email notifications.

Deprecation timeline

  • October 1, 2018: GitHub discontinued allowing users to install services. We removed GitHub Services from the GitHub.com user interface.
  • January 29, 2019: As an alternative to the email service, you can now start using email notifications for pushes to your repository. See "About email notifications for pushes to your repository" in the GitHub Help documentation to learn how to configure commit email notifications.
  • January 31, 2019: GitHub will stop 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 Server

  • GitHub Enterprise Server 2.17: GitHub Enterprise Server release 2.17 and higher will discontinue allowing admins to install services. Admins will continue to be able to modify existing service hooks and receive service hooks in GitHub Enterprise Server release 2.17 through 2.19. As an alternative to the email service, you will be able to use email notifications for pushes to your repository in 2.17 and higher. See this blog post to learn more.
  • GitHub Enterprise Server 2.20: GitHub Enterprise Server release 2.20 and higher will stop delivering all installed services' events.

The GitHub Enterprise Server 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 Server 2.20 release. We will also accept any critical patches for your GitHub Service running on GitHub Enterprise Server until October 1, 2019.

Migrating with our help

Please contact us with any questions.

As a high-level overview, the process of migration typically involves:

  • Identifying how and where your product is using GitHub Services.
  • Identifying the corresponding webhook events you need to configure in order to move to plain webhooks.
  • Implementing the design using either OAuth Apps or GitHub Apps. GitHub Apps are preferred. To learn more about why GitHub Apps are preferred, see "Reasons for switching to GitHub Apps."