GitHub Apps向けのGitHub Enterprise Serverの開発について
自分が参加していないGitHub App インスタンス内の組織がGitHub Enterprise Serverを使用できるようにする場合は、次の手順を実行する必要があります。
GitHub Enterprise Serverアクセスが重要な場合は、代わりにGitHub Actionsのカスタム アクションがニーズに合うかどうかを検討してください。 パブリック アクションは、GitHub Enterprise ServerGitHub Connectインスタンスで使用できます。 詳細については、「」を参照してください。ドキュメントの GitHub Enterprise Server。
各 GitHub Enterprise Server インスタンスは、それぞれ独自の GitHub App を登録する必要があります。
GitHub Enterprise Server インスタンスが所有する組織は、GitHub Appsまたは別のGitHub.com インスタンスに登録されているGitHub Enterprise Serverをインストールできません。 代わりに、そのインスタンスで使用するために独自の GitHub App を登録してインストールする必要があります。
-
アプリ開発者はマニフェストまたは URL パラメーターを作成します。 詳細については、「マニフェストからのGitHub アプリの登録」および「URL パラメーターを使用したGitHub アプリの登録」を参照してください。
-
アプリ開発者は、アプリを使用する GitHub Enterprise Server 管理者とマニフェストまたは URL パラメーターを共有します。 同じマニフェストまたは URL パラメーターを複数の GitHub Enterprise Server インスタンスと共有できます。
-
インスタンスの組織の所有者は、マニフェストまたは URL パラメーターを使用して GitHub Appを登録します。
-
組織は、登録した GitHub App をインストールします。
必要に応じて、組織が GitHub App をパブリックにした場合、インスタンス内の他の組織も GitHub App をインストールできます。 GitHub App をインスタンス全体にインストールする方法はなく、インスタンス内の組織にのみインストールできます。
アプリ コードは、インスタンスの GitHub App 資格情報にアクセスできる必要があります
アプリのコードには、GitHub App インスタンスが登録したGitHub Enterprise Serverの資格情報が必要です。 また、インスタンスのホスト名も必要です。 2 つのオプションがあります。インスタンスから資格情報とホスト名を取得するか、 GitHub Enterprise Server カスタマー ホストを用意し、自己ホスト可能なバージョンのアプリを管理します。
GitHub Enterprise Server インスタンスから資格情報を取得する
インスタンスは、 GitHub App 資格情報とホスト名をアプリ開発者と共有できます。 サイト管理者は、アプリ開発者を信頼している場合にのみ、この操作を実行してください。 その後、アプリ コードでは、実行されているアクションに応じて適切な資格情報を使用できます。 アプリ開発者は、適切な資格情報セットを使用し、データが漏洩しないように予防措置を講じる必要があります。
長所:
- アプリ開発者は、アプリが実行されるインフラストラクチャを制御します。
- アプリ開発者は、アプリの更新をより詳細に制御できます。
- アプリ開発者は、アプリのパフォーマンスについて、より多くの分析情報を得ることができます。
短所:
- アプリ開発者は、インスタンスからデータが漏洩しないように予防措置を講じる必要があります。
- アプリケーションがインスタンスに到達するには、場合によってはサイト管理者がファイアウォールの例外を開く必要があり、そうすることを嫌がる可能性があります。
GitHub Enterprise Server顧客がホストし、自己ホスト可能なバージョンのアプリを管理する
アプリの開発者は、セルフホスト可能なバージョンのアプリを提供できます。 その場合、サイト管理者は、アプリ開発者のセットアップとインストールの手順に従ってアプリをホストできます。
アプリのセルフホスト可能なバージョンを作成して共有する方法は、アプリの開発者に委ねられており、アプリで使われているテクノロジに依存します。
長所:
- インスタンスでは、アプリの資格情報を共有していないため、より高い安全性を維持できます。
- アプリ開発者は、インスタンスからデータが漏洩することを心配する必要はありません。
短所:
- アプリ開発者は、サイト管理者がアプリのインフラストラクチャを提供し、正しく設定していることを当てにすることになります。
- アプリ コードに対する更新プログラムのリリースは、より複雑になる可能性があります。
- アプリ開発者は、アプリのパフォーマンスに関する可視性を失う可能性があります。
アプリ コードで正しい URL を使用する必要がある
GitHub Enterprise Server では、 GitHub Free、 GitHub Pro、 GitHub Team、 GitHub Enterprise Cloudとは異なる URL が使用されます。
GitHub Enterprise Server インスタンスで動作しているかどうかに応じて、適切な URL を使用するようにアプリ コードを更新する必要があります。
HOSTNAMEを、GitHub Enterprise Server インスタンスのホスト名に置き換えます。
| GitHub Free GitHub Pro GitHub Team GitHub Enterprise Cloud | GitHub Enterprise Server |
|---|---|
https:/ | https:/ |
https:/ | https:/ |
https:/ | https:/ |
https:/ | https:/ |
アプリ コードでは機能の違いに注意する必要がある
新しい REST API エンドポイント、GraphQL オブジェクト、Webhook は、GitHub Enterprise Server、GitHub Free、GitHub Pro、GitHub Teamより後日GitHub Enterprise Cloudにリリースされます。 さらに、 GitHub Enterprise Serverには複数のバージョンがあり、古いバージョンでは REST API エンドポイント、GraphQL オブジェクト、Webhook が異なる場合があります。
そのため、アプリ コードではこれらの違いに注意する必要があります。 API 応答と webhook ペイロードには、処理しているバージョンを判断するのに役立つ、x-github-enterprise-version ペイロードのGitHub Enterprise Server ヘッダーが含まれています。
各 GitHub Enterprise Server インスタンスでレート制限を構成できます
各 GitHub Enterprise Server インスタンスは、独自のレート制限を構成できます。 アプリがレート制限に達しており、既にレート制限の下に留まる予防措置を講じている場合は、 GitHub Enterprise Server インスタンスの管理者に問い合わせてください。