Sobre el desarrollo de GitHub Apps para GitHub Enterprise Server
Si desea que su GitHub App esté disponible para las organizaciones de una instancia de GitHub Enterprise Server de la que no forma parte, debe seguir estos pasos.
Si es importante el acceso a GitHub Enterprise Server, considere si en su lugar una acción personalizada para GitHub Actions se adapta a sus necesidades. Las acciones públicas están disponibles en las instancias GitHub Enterprise Server con GitHub Connect. Para obtener más información, consulte Habilitación del acceso automático a acciones de GitHub.com mediante GitHub Connect en la GitHub Enterprise Server documentación.
Cada instancia de GitHub Enterprise Server debe registrar su propio GitHub App
Las organizaciones propiedad de una instancia de GitHub Enterprise Server no pueden instalar GitHub Apps registradas en GitHub.com o en otra instancia de GitHub Enterprise Server. En su lugar, deben registrar e instalar su propio GitHub App para su uso en esa instancia.
-
El desarrollador de aplicaciones crea un manifiesto o parámetros de dirección URL. Para más información, consulta Registro de una aplicación de GitHub desde un manifiesto y Registro de una aplicación de GitHub mediante parámetros de dirección URL.
-
El desarrollador de la aplicación comparte los parámetros de manifiesto o dirección URL con el GitHub Enterprise Server administrador que quiere usar la aplicación. Los mismos parámetros de manifiesto o dirección URL se pueden compartir con varias GitHub Enterprise Server instancias.
-
El propietario de una organización en la instancia usa el manifiesto o los parámetros de URL para registrar un GitHub App.
-
La organización instala el GitHub App que registraron.
Opcionalmente, si la organización hizo GitHub App pública, otras organizaciones dentro de la instancia también pueden instalar .GitHub App No es posible instalar un GitHub App en toda una instancia, solo en las organizaciones de una instancia.
El código de la aplicación debe poder acceder a las GitHub App credenciales de la instancia.
El código de la aplicación necesitará las credenciales del GitHub App que registró la instancia GitHub Enterprise Server. También se necesitará el nombre de host de la instancia. Tiene dos opciones: obtener las credenciales y el nombre de host de la instancia, o hacer que el cliente GitHub Enterprise Server aloje y gestione una versión autohospedada de la aplicación.
Obtención de las credenciales de la GitHub Enterprise Server instancia
La instancia puede compartir sus GitHub App credenciales y el nombre de host con el desarrollador de la aplicación. El administrador del sitio solo debe hacerlo si confía en el desarrollador de la aplicación. A continuación, el código de la aplicación puede usar las credenciales adecuadas en función de las acciones que se realicen. El desarrollador de la aplicación debe tener cuidado de usar el conjunto adecuado de credenciales y no filtrar datos.
Ventajas:
- El desarrollador de aplicaciones controla la infraestructura en la que se ejecuta la aplicación.
- El desarrollador de aplicaciones tiene más control sobre las actualizaciones de aplicaciones.
- El desarrollador de aplicaciones puede tener más información sobre el rendimiento de la aplicación.
Desventajas:
- El desarrollador de aplicaciones debe tener cuidado de no perder datos de la instancia.
- Es posible que el administrador del sitio tenga que abrir excepciones de firewall para que la aplicación llegue a la instancia y puede ser reticente a hacerlo.
Permitir que el cliente GitHub Enterprise Server aloje y administre una versión autohospedada de la aplicación
El desarrollador de aplicaciones puede proporcionar una versión autohospedable de su aplicación. Luego, el administrador del sitio puede hospedar la aplicación según las instrucciones de configuración e instalación del desarrollador de la aplicación.
El método por el que se crea y se comparte la versión autohospedable de la aplicación depende del desarrollador de la aplicación y de la tecnología que usa la aplicación.
Ventajas:
- La instancia sigue siendo más segura porque no se comparten sus credenciales de aplicación.
- El desarrollador de aplicaciones no tiene que preocuparse por la filtración de datos de la instancia.
Desventajas:
- El desarrollador de aplicaciones se basa en el administrador del sitio para proporcionar la infraestructura de la aplicación y configurar las cosas correctamente.
- La publicación de actualizaciones en el código de la aplicación puede ser más compleja.
- El desarrollador de aplicaciones puede perder visibilidad sobre el rendimiento de la aplicación.
El código de la aplicación debe usar las direcciones URL correctas
GitHub Enterprise Server usa direcciones URL diferentes que GitHub Free, GitHub Pro, GitHub Teamy GitHub Enterprise Cloud. Debe actualizar el código de la aplicación para usar la dirección URL adecuada en función de si está trabajando con una GitHub Enterprise Server instancia. Reemplace por HOSTNAME el nombre de host de la GitHub Enterprise Server instancia.
| GitHub Free GitHub Pro GitHub Team GitHub Enterprise Cloud | GitHub Enterprise Server |
|---|---|
https:/ | https:/ |
https:/ | https:/ |
https:/ | https:/ |
https:/ | https:/ |
El código de la aplicación debe tener en cuenta las diferencias de características
Los nuevos puntos de conexión de la API REST, los objetos GraphQL y los webhooks se publican en una fecha posterior a GitHub Enterprise ServerGitHub Free, GitHub Pro, GitHub Teamy GitHub Enterprise Cloud. Además, hay varias versiones de GitHub Enterprise Server, y las versiones anteriores pueden tener diferentes puntos de conexión de la API de REST, objetos de GraphQL y webhooks.
Por lo tanto, el código de la aplicación debe tener en cuenta estas diferencias. Las respuestas de la API y las cargas útiles de los webhooks incluyen una cabecera x-github-enterprise-version para las cargas útiles GitHub Enterprise Server, para ayudarte a determinar qué versión estás manejando.
Cada GitHub Enterprise Server instancia puede configurar los límites de velocidad.
Cada GitHub Enterprise Server instancia puede configurar sus propios límites de velocidad. Si la aplicación alcanza un límite de velocidad y ya está tomando precauciones para permanecer bajo el límite de velocidad, debe comunicarse con el administrador de la GitHub Enterprise Server instancia.