Skip to main content

Esta versión de GitHub Enterprise Server se discontinuará el 2026-03-17. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise Server. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Decidir cuándo compilar una aplicación de GitHub

Al compilar una integración, debes considerar la posibilidad de usar una instancia de GitHub App en los escenarios siguientes, en lugar de una instancia de OAuth app, un personal access token o GitHub Actions.

Uso de una GitHub App en lugar de una OAuth app

En general, se prefieren las GitHub Apps antes que las OAuth apps.

Tanto las OAuth apps como las GitHub Apps usan OAuth 2.0.

Las OAuth apps solo pueden actuar en nombre de un usuario, mientras que las GitHub Apps pueden actuar en nombre de un usuario o con independencia de él.

Para más información, consulta AUTOTITLE.

Para información sobre cómo migrar una OAuth app existente a una GitHub App, consulta AUTOTITLE.

Las GitHub Apps ofrecen seguridad mejorada

Las GitHub Apps proporcionan más control sobre lo que puede hacer la aplicación. En lugar de los ámbitos amplios que usan las OAuth apps, las GitHub Apps emplean permisos específicos. Por ejemplo, si tu aplicación necesita leer el contenido de un repositorio, una OAuth app requeriría el ámbito , que también permitiría a la aplicación editar la configuración y el contenido del repositorio. Una GitHub App puede solicitar acceso de solo lectura al contenido del repositorio, el que no permitirá que la aplicación realice acciones que necesiten más privilegios, como editar la configuración o el contenido del repositorio.

Las GitHub Apps también ofrecen más control sobre el acceso al repositorio. Con una GitHub App, el propietario de la organización o el usuario que instaló la aplicación puede decidir a qué repositorios puede acceder la aplicación. Por el contrario, una OAuth app puede acceder a cada repositorio a los que puede acceder el usuario que autorizó la aplicación.

Las GitHub Apps utilizan tokens de corta duración. Si se filtra el token, será válido durante un período más breve, lo que reduce el daño que pueda haber. Por el contrario, los tokens de una OAuth app no expiran hasta que la persona que autorizó la OAuth app los revoca.

Estas características de seguridad ayudan a proteger la seguridad de GitHub App al limitar el daño que se podría hacer si se hubieran filtrado las credenciales de la aplicación. Además, esto permite que las organizaciones con directivas de seguridad más estrictas usen la aplicación.

Las GitHub Apps pueden actuar con independencia del usuario o en su nombre

Las GitHub Apps pueden actuar de manera independiente de un usuario. Esto resulta beneficioso para las automatizaciones que no requieren la entrada del usuario.

De manera similar a lo que ocurre con las OAuth apps, las GitHub Apps pueden realizar de todos modos acciones en nombre de un usuario. A diferencia de lo que ocurre con las OAuth apps, que no indican que la aplicación hizo la acción, las GitHub Apps indican que la aplicación hizo la acción en nombre del usuario.

Las aplicaciones de GitHub Apps no están vinculadas a una cuenta de usuario y no consumen una asiento. Las GitHub Apps permanecen instaladas aunque la persona que instaló inicialmente la aplicación deje la organización. Esto permite que las integraciones sigan funcionando incluso si las personas dejan el equipo.

Las GitHub Apps tienen límites de frecuencia escalables

El límite de frecuencia para GitHub Apps con un token de acceso de instalación aumenta con el número de repositorios y el número de usuarios de la organización. Por el contrario, las OAuth apps tienen límites de frecuencia inferiores y no se escalan. Para más información, consulta AUTOTITLE.

Las GitHub Apps tienen webhooks integrados

Las GitHub Apps tienen webhooks centralizados integrados. Las GitHub Apps pueden recibir eventos de webhook de todos los repositorios y organizaciones a los que pueda acceder la aplicación. Por el contrario, las OAuth apps deben configurar webhooks individualmente para cada repositorio y organización.

El acceso a la API difiere ligeramente

En general, las GitHub Apps y las OAuth apps pueden hacer las mismas solicitudes de API. Sin embargo, hay algunas diferencias:

  • La API REST para administrar las ejecuciones de comprobación y las suites de comprobación solo está disponible para las GitHub Apps.
  • Los recursos de nivel empresarial, como el propio objeto de empresa, no están disponibles para GitHub Apps. Esto significa que las GitHub Apps no pueden llamar a puntos de conexión como . Sin embargo, los recursos de organización y repositorio que son propiedad de la empresa están disponibles.
  • Algunas solicitudes pueden devolver datos incompletos en función de los permisos y el acceso al repositorio que se concedió a una GitHub App. Por ejemplo, si la aplicación realiza una solicitud para obtener todos los repositorios a los que un usuario puede acceder, la respuesta solo incluirá los repositorios a los que también se concedió acceso a la aplicación.

Para obtener más información sobre los endpoints de la API REST que están disponibles para GitHub Apps, consulta AUTOTITLE.

Elección entre una GitHub App o una personal access token

Si quieres acceder a los recursos de GitHub en nombre de un usuario o una organización, o si prevés una integración de larga duración, te recomendamos compilar una GitHub App.

Puedes usar personal access tokens para scripts de corta duración o pruebas de API. Como personal access token está asociado a un usuario, la automatización podría interrumpirse si el usuario ya no tiene acceso a los recursos que necesita. Un GitHub App instalado en una organización no depende de un usuario. Además, a diferencia de un usuario, GitHub App no consume una GitHub un puesto.

GitHub admite dos tipos de personal access tokens, pero te recomienda usar fine-grained personal access token, siempre que sea posible, en lugar de personal access tokens (classic). Para más información sobre personal access tokens, consulta AUTOTITLE.

Elegir entre un GitHub App o un GitHub Actions

Tanto GitHub Apps como GitHub Actions proporcionan formas de crear herramientas de automatización y flujo de trabajo.

GitHub Actions proporcionan automatización de trabajos, como integración continua, tareas de implementación y administración de proyectos de un repositorio. Se ejecutan directamente en máquinas ejecutoras hospedadas en GitHub o ejecutores autohospedados que el administrador configura. GitHub Actions no se ejecutan de manera persistente, Los flujos de trabajo de GitHub Actions se ejecutan en respuesta a eventos que se producen en su repositorio y solo tienen acceso a los recursos del repositorio para el que están configurados. Sin embargo, se pueden compartir acciones personalizadas entre repositorios y organizaciones, lo que permite a los desarrolladores reutilizar y modificar las acciones existentes para satisfacer sus necesidades. GitHub Actions también incluyen la administración de secretos integrada, que puedes usar para interactuar de manera segura con servicios de terceros y administrar con seguridad las claves de implementación.

GitHub Apps se ejecutan de forma persistente en una infraestructura de servidor o de cómputo que proporciones o en un dispositivo de usuario. Pueden reaccionar a los eventos de webhook de GitHub, así como a los eventos de fuera del ecosistema de GitHub. Son una buena opción para las operaciones que abarcan varios repositorios u organizaciones, o para proporcionar servicios hospedados a otras organizaciones y empresas. Una instancia de GitHub App es la mejor opción al crear una herramienta cuyas funciones se llevan a cabo principalmente fuera de GitHub, o que requieren más tiempo de ejecución o más permisos de los que asigna un flujo de trabajo de GitHub Actions.

Para más información sobre cómo se comparan GitHub Actions y GitHub Apps, consulta AUTOTITLE.

Puedes usar GitHub App para autenticarte en un flujo de trabajo de GitHub Actions si la función integrada no tiene permisos suficientes. Para más información, consulta AUTOTITLE.