Skip to main content

Acerca de la creación de aplicaciones de GitHub

GitHub Apps permiten crear integraciones para automatizar procesos y ampliar la funcionalidad de GitHub.

Acerca de GitHub Apps

Un GitHub App es un tipo de integración que se puede crear para interactuar con y ampliar la funcionalidad de GitHub. Puede crear un GitHub App para proporcionar flexibilidad y reducir la fricción en los procesos, sin necesidad de iniciar sesión en un usuario o crear una cuenta de servicio.

Entre los casos de uso comunes de GitHub Apps se incluyen:

  • Automatización de tareas o procesos en segundo plano
  • Compatibilidad con "Iniciar sesión con GitHub", que permite a los usuarios iniciar sesión con su GitHub cuenta para proporcionar su identidad en el ecosistema
  • Como herramienta para desarrolladores, permite a los usuarios trabajar con GitHub al iniciar sesión en GitHub App, que luego puede actuar en su nombre.
  • Integración de la herramienta o servicio externo con GitHub

Al igual que OAuth apps, GitHub Apps use OAuth 2.0 y puede actuar en nombre de un usuario. A diferencia OAuth appsde , GitHub Apps también puede actuar independientemente de un usuario.

GitHub Apps se puede instalar directamente en empresas, organizaciones y cuentas personales y tener acceso a repositorios específicos. Vienen con webhooks integrados y con permisos específicos y delimitados.

También puede crear un GitHub App propiedad de la empresa que solo se pueda instalar en la propia empresa o en organizaciones de su empresa, y que solo pueda ser autorizado por miembros de su empresa. Para más información, consulta Creación de aplicaciones GitHub para su empresa.

Predeterminadamente, solo los propietarios de la organización pueden administrar los ajustes de las GitHub Apps en una organización. Para permitir que otros usuarios cambien la configuración del desarrollador de aplicaciones de GitHub que pertenecen a la organización, un propietario puede concederles permisos de administrador de aplicaciones de GitHub. Los administradores de aplicaciones de GitHub no pueden administrar aplicaciones de terceros. Para más información sobre cómo agregar y quitar administradores de aplicaciones de GitHub en la organización, consulta Roles en una organización.

Creación de un GitHub App

Para crear un GitHub App, primero necesita registrar un GitHub App. Para más información, consulta Registro de una aplicación de GitHub.

A continuación, debe escribir código para agregar funcionalidad a GitHub App. Puede usar las credenciales de su registro en GitHub App para realizar solicitudes autenticadas a las API de GitHub. Para obtener más información sobre cómo escribir código para GitHub App, vea Acerca de escribir código para una aplicación de GitHub. Para más información sobre la creación de solicitudes autenticadas, consulta Acerca de la autenticación con una aplicación de GitHub.

Una vez que haya escrito el código para GitHub App, la aplicación debe ejecutarse en algún lugar. Si la aplicación es un sitio web o una aplicación web, es posible que hospede la aplicación en un servidor como Azure App Service. Si la aplicación es una aplicación del lado cliente, podría ejecutarse en el dispositivo de un usuario.

Para usar GitHub App, tienes que instalarlo en tu empresa, organización o cuenta personal.

  • Si tu GitHub App es privada, solo puedes instalarla en la cuenta propietaria de la aplicación.
  • Si tu GitHub App es público, otras cuentas también pueden instalarla.
  • Si tu GitHub App es propiedad de una empresa, puedes instalarlo en la propia empresa o en cualquier organización dentro de esa empresa. Solo los miembros de la empresa pueden iniciar sesión en ella.

Para más información, consulta Instalación de su propia aplicación de GitHub y Compartir tu aplicación de GitHub.

Comprender qué tipo de GitHub App compilar

Hay varias maneras de diseñar un GitHub App elemento que quiera tener en cuenta, en función de la funcionalidad que desee que tenga la aplicación.

GitHub Apps que actúan en nombre de un usuario

Si quieres que la aplicación realice acciones en nombre de un usuario, debes usar un token de acceso de usuario para la autenticación. Este tipo de solicitud se denomina a veces "usuario a servidor" y significa que la aplicación estará limitada por los permisos que se concedieron a la aplicación, así como el permiso del usuario. Con este patrón, el usuario debe autorizar la aplicación antes de que esta pueda realizar alguna acción. Para más información, consulta Autenticación con una aplicación de GitHub en nombre de un usuario.

Algunos ejemplos de automatizaciones que podría crear con un GitHub App, donde la aplicación actúa en nombre de un usuario, incluyen:

  • Un GitHub App que usa GitHub como proveedor de identidad para su ecosistema.
  • Un GitHub App que añade un servicio sobre GitHub que podría ser útil para un usuario de GitHub. Puede compartir la aplicación con otros desarrolladores a través GitHub Marketplace de o haciendo que la aplicación sea pública.

GitHub Apps que actúan en su propio nombre

Si quieres que la aplicación realice acciones en su propio nombre en lugar de hacerlo en nombre de un usuario, debes usar un token de acceso de instalación para la autenticación. Este tipo de solicitud se denomina a veces "servidor a servidor" y significa que la aplicación estará limitada por los permisos que se concedieron a la aplicación. Para más información, consulta Autenticación como una instalación de una aplicación de GitHub.

Algunos ejemplos de automatizaciones que podría crear con un GitHub App, donde la aplicación actúa en su propio nombre, incluyen:

  • Un GitHub App que utiliza webhooks para reaccionar a un evento cuando se cumple un determinado conjunto de criterios. Por ejemplo, podrías crear una automatización basada en los endpoints de la API REST para revisar solicitudes de fine-grained personal access token que apruebe una solicitud conforme a una determinada política.
  • Un GitHub App que ayuda a los colaboradores del repositorio. Por ejemplo, la aplicación podría publicar recursos útiles después de que un colaborador crea una solicitud de incorporación de cambios o hace un comentario.
  • Un GitHub App que genera tokens de corta duración para entregarlos a otras herramientas de CI/CD o para obtener información de un repositorio.

GitHub Apps que responden a los webhooks

Si quieres que la aplicación responda a eventos en GitHub, la aplicación debe suscribirse a webhooks. Por ejemplo, puede que quieras que la aplicación deje un comentario cuando se abra una solicitud de extracción. Para más información, consulta Uso de webhooks con aplicaciones de GitHub.

Las aplicaciones instaladas en empresas no admiten actualmente webhooks y deben instalarse en una organización para recibirlas.

GitHub Apps que pueden realizar determinadas acciones

Al configurar GitHub App, puede seleccionar permisos específicos para la aplicación. Estos permisos determinan qué puede hacer la aplicación a través de la GitHub API, qué pueden hacer en nombre de un usuario que ha iniciado sesión y qué webhooks puede recibir la aplicación. Para más información, consulta Elección de permisos para una aplicación de GitHub.