Uso de un GitHub App en lugar de un OAuth app
En general, GitHub Apps se prefieren sobre OAuth apps.
Tanto OAuth apps como GitHub Apps usan OAuth 2.0.
OAuth apps solo puede actuar en nombre de un usuario, mientras GitHub Apps que puede actuar en nombre de un usuario o independientemente de un usuario.
Para más información, consulta Diferencias entre aplicaciones de GitHub y aplicaciones de OAuth.
Para obtener información sobre cómo migrar una instancia de OAuth app existente a una de GitHub App, consulte Migración de aplicaciones de OAuth a aplicaciones de GitHub.
GitHub Apps ofrecer seguridad mejorada
GitHub Apps proporcionar más control sobre lo que la aplicación puede hacer. En lugar de los amplios alcances que OAuth apps usan, GitHub Apps usan permisos detallados. Por ejemplo, si la aplicación necesita leer el contenido de un repositorio, OAuth app requeriría el repo ámbito , que también permitiría que la aplicación edite el contenido y la configuración del repositorio. Un GitHub App puede solicitar acceso de solo lectura al contenido del repositorio, que no permitirá que la aplicación realice acciones con más privilegios, como editar el contenido del repositorio o la configuración.
GitHub Apps también ofrecen más control sobre el acceso al repositorio. Con , GitHub Appel usuario o el propietario de la organización que instaló la aplicación pueden decidir a qué repositorios puede acceder la aplicación. Por el contrario, un OAuth app puede acceder a todos los repositorios a los que puede acceder el usuario que autorizó la aplicación.
GitHub Apps usa 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, OAuth app tokens no caducan hasta que la persona que autorizó el OAuth app revoque el token.
Estas características de seguridad ayudan a reforzar la seguridad de GitHub App al limitar los daños que podrían producirse si se filtraran las credenciales de la aplicación. Además, esto permite que las organizaciones con directivas de seguridad más estrictas usen la aplicación.
GitHub Apps puede actuar independientemente de o en nombre de un usuario
GitHub Apps puede actuar independientemente de un usuario. Esto resulta beneficioso para las automatizaciones que no requieren la entrada del usuario.
De forma similar a OAuth apps, GitHub Apps todavía puede realizar acciones en nombre de un usuario. A diferencia OAuth appsde , que no indica que la aplicación realizó la acción, GitHub Apps indica que la aplicación realizó la acción en nombre del usuario.
GitHub Apps no están vinculados a una cuenta de usuario y no ocupan una licencia. GitHub Apps permanece instalado incluso cuando la persona que instaló inicialmente la aplicación deja la organización. Esto permite que las integraciones sigan funcionando incluso si las personas dejan el equipo.
GitHub Apps tener límites de velocidad escalables
El límite de velocidad para GitHub Apps usar un token de acceso de instalación se escala con el número de repositorios y el número de usuarios de la organización. Por el contrario, OAuth apps tienen límites de velocidad más bajos y no se escalan. Para más información, consulta Límites de frecuencia para aplicaciones de GitHub.
GitHub Apps tienen webhooks integrados
GitHub Apps tienen webhooks integrados y centralizados. GitHub Apps puede recibir eventos de webhook para todos los repositorios y organizaciones a los que puede acceder la aplicación. Por el contrario, OAuth apps debe configurar webhooks individualmente para cada repositorio y organización.
El acceso a la API difiere ligeramente
En general, GitHub Apps y OAuth apps pueden realizar las mismas solicitudes de API. Sin embargo, hay algunas diferencias:
- La API REST para administrar las ejecuciones de comprobación y los conjuntos de comprobación solo están disponibles para GitHub Apps.
- No todas las API de nivel empresarial admiten GitHub Apps en este momento. Se agregan nuevos permisos para admitir más API. Compruebe Permisos necesarios para aplicaciones de GitHub para revisar la lista de permisos y API de empresa admitidos.
- Algunas solicitudes pueden devolver datos incompletos en función de los permisos y el acceso al repositorio que se concedió a .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 puntos de conexión de la API REST que están disponibles para GitHub Apps, consulte Puntos de conexión disponibles para los tokens de acceso para la instalación de aplicaciones de GitHub.
Elegir entre un GitHub App y un personal access token
Si desea acceder a los recursos de GitHub en nombre de un usuario o dentro de una organización, o prevé una integración de larga duración, le recomendamos crear un GitHub App.
Puede usar personal access tokens para pruebas de API o scripts de corta duración. Dado que está personal access token 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 elemento instalado en una empresa u organización no depende de un usuario. Además, a diferencia de un usuario, un GitHub App no ocupa una GitHublicencia.
GitHub admite dos tipos de personal access tokens, pero recomienda usar fine-grained personal access tokens en lugar de personal access tokens (classic) siempre que sea posible. Para obtener más información sobre personal access tokens, consulta Administración de tokens de acceso personal.
Elegir entre GitHub App o GitHub Actions
GitHub Apps y GitHub Actions proporcionan maneras de crear herramientas de automatización y flujo de trabajo.
_ GitHub Actions _ proporcionan automatización que puede realizar trabajos como la integración continua, las tareas de implementación y la administración de proyectos en un repositorio. Se ejecutan directamente en GitHubmáquinas de ejecutores hospedadas o ejecutores autohospedados que el administrador configura. GitHub Actions no se ejecutan de manera persistente. GitHub Actions Los flujos de trabajo se ejecutan en respuesta a eventos que se producen en su repositorio y solo tienen acceso a los recursos del repositorio para los 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 incluye administración de secretos integrada, que puede usar para interactuar de forma segura con servicios de terceros y administrar las claves de implementación de forma segura.
_ GitHub Apps _ ejecutarse de forma persistente en un servidor o en una infraestructura informática que usted proporciona, o en un dispositivo de usuario. Pueden reaccionar a eventos de webhook de GitHub, así como a eventos externos al 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. Un GitHub App es la mejor opción al crear una herramienta con funciones que se ejecutan principalmente fuera de GitHub o que requieren más tiempo de ejecución o más permisos de los que tiene asignados un flujo de trabajo GitHub Actions.
Para obtener más información sobre la comparación GitHub Actions con GitHub Apps, vea GitHub Actions frente a aplicaciones de GitHub.
Puede usar GitHub App para autenticarse en GitHub Actions
flujo de trabajo si GITHUB_TOKEN integrado no tiene permisos suficientes. Para más información, consulta Realización de solicitudes de API autenticadas con una aplicación de GitHub en un flujo de trabajo de Acciones de GitHub.