Integración de repositorios de GitHub y Azure Pipelines
La integración de repositorios de GitHub con Azure Pipelines ofrece una solución para los equipos que planean crear repositorios nuevos o existentes en GitHub, pero buscan aprovechar las funcionalidades de Azure Pipelines para la integración e implementación continuas. Este enfoque permite a las organizaciones aprovechar su experiencia existente en Azure Pipelines, a la vez que se beneficia de las características colaborativas y la familiaridad de GitHub para el control de versiones y la administración de código.
Planificación
Aunque GitHub y Azure Pipelines ofrecen una estrecha integración entre sí, son dos servicios independientes con su propia organización, administración de usuarios y modelo de permisos. Para implementar y administrar esa integración, debe tener en cuenta varias consideraciones.
Convención de nomenclatura
Considere la posibilidad de alinear la forma en que los repositorios de GitHub y Azure Pipelines se denominan y estructuran. En particular:
- Si aún no tiene una organización de Azure DevOps, cree una denominada igual que la organización o la cuenta de GitHub. Por ejemplo, suponiendo que la organización de GitHub se denomina org1, la dirección URL resultante de la organización de Azure DevOps sería https://dev.azure.com/org1.
- En la organización de Azure DevOps, cree proyectos denominados iguales que los repositorios de GitHub. Por ejemplo, suponiendo que el repositorio de GitHub se denomina repo1, la dirección URL resultante sería https://dev.azure.com/org1/repo1.
- En el proyecto de DevOps, cree 'pipelines' con los nombres de la organización y el repositorio de GitHub correspondientes, como org1.repo1.
Tenga en cuenta que esta alineación no es necesaria, pero le ayudará a indicar claramente la relación entre los repositorios de GitHub y sus respectivas canalizaciones de Azure.
Administración de usuarios
De forma predeterminada, los usuarios de GitHub no tienen acceso a Azure Pipelines. De forma similar, Azure Pipelines no conoce las identidades de GitHub. Por lo tanto, no es posible configurar Azure Pipelines para notificar automáticamente a estos usuarios problemas relacionados con la compilación o la implementación. Para corregirlo, agregue las cuentas de usuario a la organización de Azure DevOps y configure sus permisos para que coincidan con las de la organización de GitHub. En ese momento, podrá configurar las notificaciones de usuario de Azure Pipelines.
Permisos de Azure Pipeline
Azure Pipelines debe poder acceder a repositorios de GitHub para desencadenar sus compilaciones y capturar su código durante las compilaciones. Puede conceder este acceso mediante los métodos siguientes:
- Autenticación de aplicaciones de GitHub con la identidad de Azure Pipelines
- OAuth con su identidad personal de GitHub
- Token de acceso personal (PAT) de GitHub con la identidad de tu cuenta personal de GitHub
Autenticación de aplicaciones de GitHub
La aplicación gitHub de Azure Pipelines es el tipo de autenticación recomendado para las canalizaciones de integración continua, ya que no se basa en su identidad personal de GitHub. Además, este método admite comprobaciones de GitHub para mostrar resultados de compilación, prueba y cobertura de código en GitHub.
OAuth
La autorización de OAuth es adecuada al trabajar con cuentas personales de GitHub. En este caso, las actualizaciones de estado de GitHub se realizan en el contexto de seguridad de la identidad personal de GitHub.
Token de acceso personal de GitHub
Al igual que con OAuth, PAT se basa en la identidad personal de GitHub para la autenticación, pero sus permisos se pueden configurar de forma muy granular. Por otro lado, PAT está sujeto a expiración y revocación, por lo que debe asegurarse de que sigue siendo válido mientras necesite ejecutar las canalizaciones correspondientes.
Implementación
Para usar la aplicación de GitHub, instálela en su organización de GitHub para todos los repositorios (como propietario de la organización) o algunos de ellos (como administrador del repositorio). Después de la instalación, las canalizaciones destinadas a estos repositorios usarán, de forma predeterminada, este método de autenticación.
Para usar OAuth, seleccione Elegir una conexión diferente en la lista de repositorios al crear una canalización. A continuación, seleccione Autorizar para iniciar sesión en GitHub y autorizar con OAuth. Una conexión de OAuth se guarda en el proyecto de Azure DevOps. Podrá hacer referencia a esto más adelante si es necesario al crear canalizaciones adicionales.
Para usar un PAT, use la página de configuración de GitHub. Establezca los permisos en el repositorio, admin:repo_hook, read:user y user:email. Copie el PAT generado en una nueva conexión de servicio de GitHub en la configuración del proyecto de Azure DevOps. Haga referencia al nombre de la conexión de servicio al crear canalizaciones.
Al crear una canalización, seleccione el repositorio de GitHub de destino y, a continuación, un archivo YAML en ese repositorio. El repositorio en el que está presente el archivo YAML se denomina self. De forma predeterminada, este es el repositorio que construirá el pipeline. También puede configurar la misma canalización para consultar repositorios adicionales.
Al crear canalizaciones para un único repositorio en varias organizaciones de Azure DevOps, solo la primera canalización se puede desencadenar automáticamente mediante confirmaciones o solicitudes de incorporación de cambios de GitHub. Las canalizaciones restantes pueden acceder al repositorio, pero invocarlas requiere desencadenadores manuales o programados.