GitHub Servicesは、webhookとの統合を進めるために非推奨となりました。 このガイドは、GitHub Servicesからwebhookへの移行を支援します。 このアナウンスに関する詳細については、ブログポストを参照してください。
メールサービスに代わるものとして、リポジトリへのプッシュに対するメール通知を利用しはじめられるようになりました。 コミットメール通知の設定方法については、「リポジトリへのプッシュに対するメール通知について」を参照してください。
非推奨のタイムライン
- 2018年10月1日: GitHubはユーザがサービスをインストールするのを禁止しました。 GitHub.comのユーザインターフェースから、GitHub Servicesを削除しました。
- 2019年1月29日: メールサービスの代替として、リポジトリへのプッシュに対するメール通知を使い始められるようになりました。 コミットメール通知の設定方法については、「リポジトリへのプッシュに対するメール通知について」を参照してください。
- 2019年1月31日: GitHubはGitHub.com上でのインストールされたサービスのイベント配信を停止しました。
GitHub Servicesの背景
GitHub Services(Service Hooksと呼ばれることもあります)は、インテグレーションの旧来の方法であり、GitHubがインテグレーターのサービスの一部をgithub-services
リポジトリを通じてホストします。 GitHub上で行われたアクションがこれらのサービスをトリガーし、これらのサービスを使ってGitHubの外部のアクションをトリガーできます。
GitHub Servicesを使っているリポジトリを探す
アプライアンス上でどのリポジトリがGitHub Servicesを使っているかを特定するためのコマンドラインスクリプトが提供されています。 詳しい情報についてはghe-legacy-github-services-reportを参照してください。
GitHub Servicesとwebhook
GitHub Servicesとwebhookとの主な違いは以下のとおりです。
- 設定: GitHub Servicesにはサービス固有の設定オプションがありますが、webhookはURLとイベント群を指定するだけで単純に設定できます。
- カスタムロジック: GitHub Servicesは1つのイベントの処理の一部として、複数のアクションで反応するカスタムロジックを持つことができますが、webhookにはカスタムロジックはありません。
- リクエストの種類: GitHub ServicesはHTTP及び非HTTPリクエストを発行できますが、webhookが発行できるのはHTTPリクエストのみです。
webhookでのServicesの置き換え
GitHub Servicesをwebhookで置き換えるには、以下のようにします。
-
このリストから、サブスクライブする必要がある関連webhookイベントを特定してください。
-
GitHub Servicesを現在使っている方法に応じて、設定を変更してください。
- GitHub Apps: アプリケーションの権限とサブスクライブしているイベントを更新し、関連するwebhookイベントを受信するようにアプリケーションを設定してください。
- OAuth Apps:
repo_hook
やorg_hook
スコープをリクエストして、ユーザの代わりに関連するイベントを管理してください。 - GitHub Serviceプロバイダー: ユーザが手動で、送信された関連するイベントとあわせてwebhookを設定するように要求するか、この機会にこの機能を管理するアプリケーションを構築してください。 詳しい情報については「アプリケーションについて」を参照してください。
-
GitHubの外部から、追加の設定を移動してください。 GitHub Servicesの中には、GitHub内の設定ページで追加のカスタム設定が必要になるものがあります。 使っているサービスがそうなら、この機能をアプリケーションに移すか、可能な場合はGitHub AppもしくはOAuth Appに依存する必要があります。
GitHub Enterprise Serverのサポート
- GitHub Enterprise Server 2.17: GitHub Enterprise Server リリース2.17以降では、管理者がサービスをインストールできなくなります。 GitHub Enterprise Serverリリース2.17から2.19では、管理者は引き続き既存のサービスフックを変更し、サービスフックを受信できます。 GitHub Enterprise Server 2.17以降では、メールサービスの代替としてリポジトリへのプッシュに対するメール通知が使えます。 詳細についてはこのブログポストを参照してください。
- GitHub Enterprise Server 2.20: GitHub Enterprise Serverリリース2.20以降では、インストールされたすべてのサービスイベントの配信が停止されます。
GitHub Enterprise Server 2.17リリースは、管理者がGitHub Servicesをインストールできない最初のリリースになります。 既存のGitHub Servicesは、GitHub Enterprise Server 2.20リリースまでしかサポートされません。 また、2019年10月1日までGitHub Enterprise Server上で動作しているGitHub Serviceに対する重要なパッチを受け付けます。
弊社の支援を受けての移行
質問があれば、お問い合わせください。
高レベルの概要としては、移行のプロセスは通常以下を含みます。
- 製品がどこでどのようにGitHub Servicesを使っているかの特定。
- 通常のwebhookに移行するために設定する必要がある、対応するwebhookイベントの特定。
- Implementing the design using either OAuth App or GitHub Apps. GitHub Apps are preferred. To learn more about why GitHub Apps are preferred, see "Reasons for switching to GitHub Apps."