Sobre o desenvolvimento de GitHub Apps para GitHub Enterprise Server
Se quiser que seu/sua GitHub App esteja disponível para organizações em uma instância GitHub Enterprise Server da qual você não faz parte, você deve seguir as etapas a seguir.
Essas etapas não são necessárias se o seu GitHub App for usado apenas por organizações em uma instância GitHub Enterprise Server da qual você faz parte. Para saber mais, confira Instalando seu próprio aplicativo GitHub.
Se o GitHub Enterprise Server acesso for importante, considere se uma ação personalizada para GitHub Actions atenderia melhor às suas necessidades. As ações públicas estão disponíveis nas instâncias GitHub Enterprise Server com GitHub Connect. Para obter mais informações, consulte Habilitar o acesso automático a ações de GitHub.com usando GitHub Connect.
Cada instância de GitHub Enterprise Server deve registrar seu próprio GitHub App
As organizações pertencentes a uma instância GitHub Enterprise Server não podem instalar GitHub Apps registradas em GitHub.com ou em outra instância GitHub Enterprise Server. Em vez disso, eles devem registrar e instalar seus próprios GitHub App para uso nessa instância.
-
O desenvolvedor do aplicativo cria um manifesto ou parâmetros de URL. Para saber mais, confira Registrando um App do GitHub a partir de um manifesto e Registrando um aplicativo GitHub usando parâmetros de URL.
-
O desenvolvedor do aplicativo compartilha o manifesto ou os parâmetros de URL com o GitHub Enterprise Server administrador que deseja usar o aplicativo. Os mesmos parâmetros de manifesto ou URL podem ser compartilhados com várias GitHub Enterprise Server instâncias.
-
Um proprietário da organização na instância usa o manifesto ou os parâmetros de URL para registrar um GitHub App.
-
A organização instala o GitHub App que ela registrou.
Opcionalmente, caso a organização tenha tornado o GitHub App público, outras organizações dentro da instância também poderão instalar o GitHub App. Não há como instalar um(a) GitHub App em uma instância inteira, apenas nas organizações dentro de uma instância.
O código do aplicativo deve ser capaz de acessar as GitHub App credenciais da instância
O código do seu aplicativo precisará das credenciais do(a) GitHub App que a instância GitHub Enterprise Server registrou. Ele também precisará do nome do host da instância. Você tem duas opções: obter as credenciais e o hostname da instância ou fazer com que o cliente GitHub Enterprise Server hospede e gerencie uma versão auto-hospedável do aplicativo.
Obter as credenciais da GitHub Enterprise Server instância
A instância pode compartilhar suas GitHub App credenciais e nome de host com o desenvolvedor do aplicativo. O administrador do site só deve fazer isso se confiar no desenvolvedor do aplicativo. Em seguida, o código do aplicativo pode usar as credenciais apropriadas, dependendo de quais ações ele está realizando. O desenvolvedor do aplicativo deve tomar os cuidados para usar o conjunto apropriado de credenciais e não vazar dados.
Vantagens:
- O desenvolvedor do aplicativo controla a infraestrutura em que o aplicativo é executado.
- O desenvolvedor do aplicativo tem mais controle sobre as atualizações do aplicativo.
- O desenvolvedor do aplicativo pode ter mais informações sobre o desempenho do aplicativo.
As desvantagens:
- O desenvolvedor do aplicativo deve tomar os cuidados para evitar o vazamento de dados da instância.
- O administrador do site pode precisar abrir exceções de firewall para que o aplicativo alcance a instância e pode estar relutante em fazê-lo.
Fazer com que o cliente GitHub Enterprise Server hospede e gerencie uma versão autohospedada do aplicativo
O desenvolvedor do aplicativo pode fornecer uma versão auto-hospedada do aplicativo. Em seguida, o administrador do site pode hospedar o aplicativo de acordo com as instruções de instalação e configuração do desenvolvedor do aplicativo.
O método de criação e compartilhamento da versão auto-hospedada do aplicativo é escolhido pelo desenvolvedor do aplicativo e depende da tecnologia que o aplicativo usa.
Vantagens:
- A instância permanece mais segura porque não está compartilhando as credenciais do aplicativo.
- O desenvolvedor do aplicativo não precisa se preocupar com o vazamento de dados da instância.
As desvantagens:
- O desenvolvedor do aplicativo depende do administrador do site para fornecer a infraestrutura para o aplicativo e configurar as coisas corretamente.
- A liberação de atualizações no código do aplicativo pode ser mais complexa.
- O desenvolvedor do aplicativo pode perder a visibilidade sobre o desempenho do aplicativo.
O código do aplicativo deve usar as URLs corretas
GitHub Enterprise Server usa URLs diferentes de GitHub Free, GitHub Pro, GitHub Team e GitHub Enterprise Cloud. Você deve atualizar o código do aplicativo para usar a URL apropriada, dependendo se ela está funcionando com uma GitHub Enterprise Server instância. Substitua HOSTNAME pelo nome do host da GitHub Enterprise Server instância.
| GitHub Free GitHub Pro GitHub Team GitHub Enterprise Cloud | GitHub Enterprise Server |
|---|---|
https:/ | https:/ |
https:/ | https:/ |
https:/ | https:/ |
https:/ | https:/ |
O código do aplicativo deve estar ciente das diferenças de funcionalidades
Novos endpoints da API REST, objetos GraphQL e webhooks são lançados para GitHub Enterprise Server em uma data posterior a GitHub Free, GitHub Pro, GitHub Team e GitHub Enterprise Cloud. Além disso, há várias versões de GitHub Enterprise Server, e versões mais antigas podem ter endpoints da API REST diferentes, objetos do GraphQL e webhooks.
Portanto, o código do aplicativo precisa estar ciente dessas diferenças. As respostas da API e os payloads de webhook incluem um cabeçalho x-github-enterprise-version para payloads GitHub Enterprise Server, para ajudar você a determinar com qual versão está lidando.
Cada GitHub Enterprise Server instância pode configurar limites de taxa
Cada GitHub Enterprise Server instância pode configurar seus próprios limites de taxa. Se seu aplicativo estiver atingindo um limite de taxa e já estiver tomando precauções para permanecer abaixo do limite de taxa, você deverá conversar com o administrador da GitHub Enterprise Server instância.