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イベントの特定。
- OAuth AppまたはGitHub Appsのいずれかを利用して設計を実装。 GitHub Appsの方が望ましいです。 GitHub Appsが望ましい理由の詳細を学ぶには、「GitHub Appsに切り替える理由」を参照してく� さい。