Skip to main content

Hacer que la instancia de GitHub App esté disponible para GitHub Enterprise Server

Para que las instancias de GitHub Enterprise Server usen tu instancia de GitHub App, debes realizar algunos pasos más.

Acerca del desarrollo de GitHub Apps para GitHub Enterprise Server

Si quieres que tu instancia de GitHub App esté disponible para las organizaciones de una instancia de GitHub Enterprise Server de la que no formas parte, debes realizar los siguientes pasos.

Si el acceso a GitHub Enterprise Server es importante, considera si una acción personalizada para GitHub Actions satisfará tus necesidades en su lugar. Las acciones públicas están disponibles en las instancias de GitHub Enterprise Server con GitHub Connect. Para más información, consulta Habilitación del acceso automático a las acciones de GitHub.com mediante GitHub Connect en la documentación de GitHub Enterprise Server.

Cada instancia de GitHub Enterprise Server debe registrar su propia instancia de 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 crear e instalar su propia instancia de GitHub App para usarla en esa instancia.

  1. 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 instancia de GitHub App mediante parámetros de dirección URL.

  2. El desarrollador de aplicaciones comparte el manifiesto o los parámetros de dirección URL con el administrador de GitHub Enterprise Server que quiere usar la aplicación. El mismo manifiesto o parámetros de dirección URL se pueden compartir con varias instancias de GitHub Enterprise Server.

  3. Un propietario de organización en la instancia usa los parámetros de manifiesto o dirección URL para registrar una instancia de GitHub App.

  4. La organización instala la instancia de GitHub App que han registrado.

    Opcionalmente, si la organización convirtió en pública la instancia de GitHub App, otras organizaciones de la instancia pueden instalarla también. No hay ninguna manera de instalar una instancia de GitHub App en una instancia completa, solo en organizaciones de una instancia.

El código de la aplicación debe poder acceder a las credenciales de GitHub App de la instancia.

El código de la aplicación necesitará las credenciales de la instancia de GitHub App que registró la instancia de GitHub Enterprise Server. También se necesitará el nombre de host de la instancia. Tienes dos opciones: puedes obtener las credenciales y el nombre de host de la instancia, o bien puedes hacer que el cliente de GitHub Enterprise Server hospede y administre una versión autohospedable de la aplicación.

Obtención de las credenciales de la instancia de GitHub Enterprise Server

La instancia puede compartir sus credenciales de GitHub App 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.

Cómo hacer que el cliente de GitHub Enterprise Server hospede y administre una versión autohospedable 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 a GitHub Free, GitHub Pro, GitHub Team y GitHub Enterprise Cloud. Debes actualizar el código de la aplicación para usar la dirección URL adecuada en función de si estás trabajando con una instancia de GitHub Enterprise Server. Reemplaza HOSTNAME por el nombre de host de la instancia de GitHub Enterprise Server.

GitHub Free
GitHub Pro
GitHub Team
GitHub Enterprise Cloud
GitHub Enterprise Server
https://api.github.comhttps://HOSTNAME/api/v3
https://api.github.com/graphqlhttps://HOSTNAME/api/v3/graphql
https://github.com/login/oauth/authorizehttps://HOSTNAME/login/oauth/authorize
https://github.com/login/oauth/access_tokenhttps://HOSTNAME/login/oauth/access_token

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 de GraphQL y los webhooks se publican en GitHub Enterprise Server con posterioridad a GitHub Free, GitHub Pro, GitHub Team y GitHub Enterprise Cloud. Además, hay varias versiones de GitHub Enterprise Server, y las versiones anteriores pueden tener diferentes puntos de conexión de API 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 API y las cargas de webhook incluyen un encabezado x-github-enterprise-version para las cargas de GitHub Enterprise Server para ayudarle a determinar qué versión está controlando.

Cada instancia de GitHub Enterprise Server puede configurar límites de frecuencia

Cada instancia de GitHub Enterprise Server puede configurar sus propios límites de frecuencia. Si la aplicación alcanza un límite de frecuencia y ya está tomando precauciones para permanecer por debajo de ese límite, debes comunicarte con el administrador de la instancia de GitHub Enterprise Server.