Sobre o desenvolvimento de GitHub Apps para o GitHub Enterprise Server
Se você quiser que seu GitHub App esteja disponível para organizações em uma instância do GitHub Enterprise Server da qual você não faz parte, execute as etapas a seguir.
Essas etapas não serão necessárias se o GitHub App só for usado por organizações em uma instância do GitHub Enterprise Server da qual você faz parte. Para obter mais informações, confira "Instalando seu próprio Aplicativo GitHub".
Se o acesso ao GitHub Enterprise Server for importante, considere se uma ação personalizada para GitHub Actions atenderá às suas necessidades. As ações públicas estão disponíveis em instâncias do GitHub Enterprise Server com o GitHub Connect. Para obter mais informações, confira "Habilitar o acesso automático a GitHub.com usando o GitHub Connect."
Cada instância do GitHub Enterprise Server deve registrar o próprio GitHub App
As organizações de uma instância do GitHub Enterprise Server não podem instalar GitHub Apps registrados no GitHub.com ou em outra instância do GitHub Enterprise Server. Em vez disso, devem criar e instalar o próprio GitHub App para uso nessa instância.
-
O desenvolvedor do aplicativo cria um manifesto ou parâmetros de URL. Para obter mais informações, confira "Registrar um Aplicativo GitHub a partir do manifesto" e "Registrar um aplicativo GitHub usando parâmetros de URL."
-
O desenvolvedor do aplicativo compartilha o manifesto ou os parâmetros de URL com administrador do GitHub Enterprise Server que deseja usar o aplicativo. Os mesmos parâmetros de URL ou o manifesto podem ser compartilhados com várias instâncias do GitHub Enterprise Server.
-
Um proprietário de organização na instância registra um GitHub App com base no manifesto ou nos parâmetros de URL.
-
A organização instala o GitHub App registrado.
Opcionalmente, se a organização tornou o GitHub App público, outras organizações dentro da instância também poderão instalar o GitHub App. Não há uma maneira de instalar um GitHub App em uma instância inteira, somente em organizações dentro de uma instância.
O código do aplicativo deve ser capaz de acessar as credenciais do GitHub App para a instância
O código do aplicativo precisará das credenciais do GitHub App registrado pela instância do GitHub Enterprise Server. Ele também precisará do nome do host da instância. Há duas opções: obter as credenciais e o nome do host da instância ou ter o host do cliente do GitHub Enterprise Server e gerenciar uma versão auto-hospedada do aplicativo.
Obter as credenciais na instância do GitHub Enterprise Server
A instância pode compartilhar as credenciais do GitHub App e o nome do 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.
Ter o host do cliente do GitHub Enterprise Server e gerenciar uma versão auto-hospedada 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
O GitHub Enterprise Server usa URLs diferentes do GitHub Free, GitHub Pro, GitHub Team e GitHub Enterprise Cloud. Você deve atualizar o código do aplicativo para usar a URL apropriada, de acordo com a instância do GitHub Enterprise Server na qual ele está funcionando. Substitua HOSTNAME
pelo nome do host da instância do GitHub Enterprise Server.
GitHub Free GitHub Pro GitHub Team GitHub Enterprise Cloud | GitHub Enterprise Server |
---|---|
https://api.github.com | https://HOSTNAME/api/v3 |
https://api.github.com/graphql | https://HOSTNAME/api/v3/graphql |
https://github.com/login/oauth/authorize | https://HOSTNAME/login/oauth/authorize |
https://github.com/login/oauth/access_token | https://HOSTNAME/login/oauth/access_token |
O código do aplicativo deve ter ciência das diferenças de recursos
Novos pontos de extremidade da API REST, objetos do GraphQL e webhooks são liberados para o GitHub Enterprise Server em uma data posterior ao GitHub Free, GitHub Pro, GitHub Team e GitHub Enterprise Cloud. Além disso, há várias versões do GitHub Enterprise Server, e versões mais antigas podem ter pontos de extremidade de API REST, objetos do GraphQL e webhooks diferentes.
Portanto, o código do aplicativo precisa estar ciente dessas diferenças. As respostas da API e os conteúdos do webhook incluem um cabeçalho de x-github-enterprise-version
no conteúdo do GitHub Enterprise Server a fim de ajudar você a determinar a versão com a qual está lidando.
Cada instância do GitHub Enterprise Server pode configurar limites de taxa
Cada instância do GitHub Enterprise Server pode configurar os próprios limites de taxa. Se seu aplicativo estiver atingindo um limite de taxa e já estiver tomando os cuidados para permanecer abaixo do limite da taxa, você deverá conversar com o administrador da instância do GitHub Enterprise Server.