Las apps en GitHub te permiten automatizar y mejorar tu flujo de trabajo. Puedes crear apps para mejorar tu flujo de trabajo.
Las GitHub Apps son la forma oficial y recomendada de integrarse con GitHub, ya que ofrecen permisos mucho más granulares para acceder a los datos, Pero GitHub es compatible tanto con las OAuth Apps y con las GitHub Apps. Para obtener más información sobre cómo elegir un tipo de app, consulta la sección "Diferencias entre las GitHub Apps y las Apps de OAuth".
Para obtener una guía detallada del proceso de creación de una GitHub App, consulta la sección "Crea tu primer GitHub App".
Acerca de GitHub Apps
Las GitHub Apps son actores de primera clase dentro de GitHub. Una GitHub App actúa por si misma, tomando las acciones a través de la API y utilizando directamente su propia identidad, lo que significa que no necesitas mantener un bot o cuenta de servicio como un usuario separado.
Las GitHub Apps se pueden instalar directamente en las cuentas de organización y de usuario, y se les puede dar acceso a repositorios diferentes. Vienen con webhooks integrados y con permisos específicos y delimitados. Cuando configuras tu GitHub App, puedes seleccionar los repositorios a los cuales quieres acceder. Por ejemplo, puedes configurar una app llamada MyGitHub
que escribe informes de problemas en el repositorio octocat
y únicamente en dicho repositorio. Para instalar una GitHub App, necesitas ser propietario de la organización o tener permisos administrativos en el repositorio.
Predeterminadamente, solo los propietarios de la organización pueden administrar los ajustes de las GitHub Apps en una organización. Para agregar usuarios adicionales para que administren las GitHub Apps en una organización, un propietario puede otorgarles permisos de administrador sobe ellas. Consula la sección "Administradores de GitHub Apps" para aprender cómo agregar y eliminar administradores de GitHub Apps en tu organización.
Las GitHub Apps son aplicaciones que necesitan hospedarse en algún lugar. Para obtener instruciones paso a paso que cubran los temas de servidores y hospedaje, consulta la sección "Crear tu primer GitHub App".
Para mejorar tu flujo de trabajo, puedes crear una GitHub App que contenga varios scripts, o bien, una aplicación completa, y después conectarla a muchas otras herramientas. Por ejemplo, puedes conectar las GitHub Apps a GitHub, Slack, a otras apps locales que tuvieras, programas de correo electrónico, o incluso a otras API.
Toma estas ideas en consideración cuando crees GitHub Apps:
-
Una GitHub App debe tomar acciones independientemente del usuario (a menos de que dicha app utilice un token de usuario a servidor). Para mantener más seguros los tokens de acceso de usuario a servidor, puedes utilizar tokens de acceso que caducarán después de 8 horas, y un token de actualización que se puede intercambiar por un token de acceso nuevo. Para obtener más información, consulta la sección "Actualizar los tokens de acceso de usuario a servidor".
-
Asegúrate de que la GitHub App se integre con repositorios específicos.
-
La GitHub App deberá conectarse a una cuenta personal o a una organización.
-
No esperes que la GitHub App sepa y haga todo lo que puede hacer un usuario.
-
No utilices a la GitHub App si solo necesitas el servicio de "Iniciar sesión en GitHub". Sin embargo, una GitHub App puede utilizar un flujo de identificación de usuario para registrar a los usuarios y para hacer otras cosas.
-
No crees una GitHub App si únicamente quieres fungir como un usuario de GitHub y hacer todo lo que puede hacer un usuario.
Para comenzar a desarrollar GitHub Apps, comienza con "Crear una GitHub App".
Acerca de las OAuth Apps
OAuth2 es un protocolo que permite a las aplicaciones externas el solicitar autorización para usar detalles privados en una cuenta de GitHub del usuario sin acceder a su contraseña. Estas son preferentes sobre la Autenticación Básica, ya que los tokens pueden limitarse a ciertos tipos de datos y los usuarios pueden revocarlos en cualquier momento.
Advertencia: Si revocas todos los permisos de una App OAuth borrarás cualquier llave SSH que haya generado la aplicación en nombre del usuario, , incluyendo las llaves de despliegue.
Una App OAuth utiliza a GitHub como proveedor de identidad para autenticarse como el usuario que otorga el acceso a la app. Esto significa que, cuando un usuario otorga acceso a una App OAuth, también otorga permisos a todos los repositorios a los cuales tienen acceso en su cuenta, y también a cualquier organización a la que pertenezcan que no haya bloqueado el acceso de terceros.
Crear una App OAuth es una buena opción si estás creando procesos más complejos de lo que puede manejar un script sencillo. Nota que las OAuth Apps son aplicaciones que necesitan hospedarse en algún lugar.
Toma estas ideas en consideración cuando crees OAuth Apps:
- Una App OAuth siempre debe actuar como el usuario autenticado de GitHub a través de todo GitHub (por ejemplo, cuando proporciona notificaciones de usuario).
- Una App OAuth puede utilizarse como un proveedor de identidad si el usuario autenticado habilita la opción de "Ingresar con GitHub".
- No crees una App OAuth si quieres que tu aplicación actúe en un solo repositorio. Con el alcance de
repo
de OAuth, Las OAuth Apps podrán actuar en todos los repositorios del usuario autenticado. - No crees una App OAuth para que actúe como una aplicación para tu equipo o compañía. Las OAuth Apps se autentican como un solo usuario, así que, si una persona crea una App OAuth para el uso de una compañía, y luego salen de dicha compañía, nadie más tendrá acceso a ella.
Para obtener más información sobre las OAuth Apps, consulta las secciones "Crear una App OAuth" y "Registrar tu app".
Tokens de acceso personal
Un token de acceso personal es una secuencia de caracteres que funciona de forma similar a un Token de OAuth en el aspecto de que puedes especificar sus permisos a través de alcances. Un token de acceso personal también es similar a una contraseña, pero puedes tener varios de ellos y puedes revocar el acceso de cada uno en cualquier momento.
Com ejemplo, puedes habilitar un token de acceso personal para tener acceso de escritura en tus repositorios. Si posteriormente ejecutas un comando de cURL o escribes un script que cree una propuesta en tu repositorio, tendrías que pasar el token de acceso personal para autenticarte. Puedes almacenar el token de acceso personal como una variable de ambiente para evitar el tener que teclearlo cada vez que lo utilices.
Considera estas ideas cuando utilices tokens de acceso personal:
- Recuerda utilizar este token para que te represente únicamente a ti.
- Puedes realizar solicitudes cURL de una sola ocasión.
- Puedes ejecutar scripts personales.
- No configures un script para que lo utilice todo tu equipo o compañía.
- No configures una cuenta de usuario compartida para que actúe como un usuario bot.
Determinar qué integración debes crear
Antes de que comiences a crear integraciones, necesitas determinar la mejor forma de acceder, autenticar, e interactuar con las API de GitHub. La siguiente imagen te proporciona algunas preguntas que deberías hacerte a ti mismo cuando decidas si vas a utilizar tokens de acceso personal, GitHub Apps o OAuth Apps para tu integración.
Considera estas preguntas acerca de cómo necesita comportarse tu integración y a qué necesita acceder:
- ¿Mi integración actuará únicamente como yo, o actuará más como una aplicación?
- ¿Quiero que actúe independientemente de mí como su propia entidad?
- ¿Accederá a todo lo que yo puedo acceder, o quiero limitar su acceso?
- ¿Es simple o compleja? Por ejemplo, los tokens de acceso personal sirven bien para scripts simples y cURLs, mientras que una App OAuth puede manejar scripts más complejos.
Solicitar soporte
Para las preguntas, reportes de errores y debates sobre las GitHub Apps, OAuth Apps y el desarrollo de la API, explora el Foro de desarrollo y soporte de la API de GitHub. El foro se modera y mantiene con el personal de GitHub, pero no se garantiza que el personal de GitHub responda las preguntas que se publiquen en el mismo.
Considera contactar al Soporte de GitHub directamente utilizando el formato de contacto para:
- respuestas garantizadas del personal de GitHub Enterprise Server
- solicitudes de soporte que involucren preocupaciones sobre datos sensibles o privados
- solicitudes de características
- retroalimentación sobre los productos de GitHub Enterprise Server