Conexión de Azure DevOps Server a GitHub (en el entorno local)

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Al conectar el proyecto de Azure DevOps Server con los repositorios de GitHub, se ayuda a vincular las confirmaciones y las solicitudes de incorporación de cambios de GitHub con los elementos de trabajo. Puede usar GitHub para el desarrollo de software y Azure Boards para planificar el trabajo y realizar su seguimiento.

Nota:

Las instancias locales de Azure DevOps Server 2020 admiten la integración con repositorios de GitHub.com y GitHub Enterprise Server. Si desea conectarse desde Azure DevOps Services, consulte Conexión de Azure Boards a GitHub.

Al conectar el proyecto de Azure DevOps Server con los repositorios de GitHub Enterprise Server, se ayuda a vincular las confirmaciones y las solicitudes de incorporación de cambios de GitHub con los elementos de trabajo. Puede usar GitHub Enterprise para el desarrollo de software y Azure Boards para planear el trabajo y realizar su seguimiento.

Nota:

Las instancias locales de Azure DevOps Server 2019 admiten la integración con repositorios de GitHub Enterprise Server. Si desea conectarse desde Azure DevOps Services, consulte Conexión de Azure Boards a GitHub.

Requisitos previos

Opciones de autenticación

Entre las opciones de autenticación disponibles se admiten las siguientes.

Nota:

OAuth ya no se admite en Azure DevOps Server 2020.

Registro de Azure DevOps en GitHub como una aplicación de OAuth

Si tiene previsto usar OAuth para conectar Azure DevOps Server con GitHub Enterprise Server, primero debe registrar la aplicación como una aplicación de OAuth. Para más información, consulte Creación de una aplicación de OAuth.

Registro de Azure DevOps Server

  1. Inicie sesión en el portal web del servidor de GitHub Enterprise.

    Captura de pantalla del inicio de sesión para GitHub Enterprise Server.

  2. Seleccione Configuración>Configuración de desarrollador>Aplicaciones de Oauth>Nueva aplicación de OAuth.

    Captura de pantalla que muestra la secuencia para llegar a la pantalla Nueva aplicación de OAuth.

  3. Escriba la información para registrar la aplicación de Azure DevOps Server.

    Captura de pantalla del registro del proyecto de Azure DevOps Server.

    En Dirección URL de la página principal, especifique la dirección URL pública de la colección de proyectos. Puede encontrar esta dirección URL al abrir la consola de administración de Azure DevOps y vea el nodo Capa de aplicación.

    Captura de pantalla de la consola de administración de Azure DevOps Server, nivel de aplicación.

    En la dirección URL de devolución de llamada de autorización, use el siguiente patrón para construir la dirección URL.

    {Azure DevOps Server Public Url}/{Collection Name}/_admin/oauth2/callback

    Por ejemplo:

    http://contoso/DefaultCollection/_admin/oauth2/callback

    https://tfs.contoso.com/MyCollection/_admin/oauth2/callback

  4. Seleccione Register application (Registrar aplicación).

  5. Aparece una página que proporciona el id. de cliente y el secreto de cliente de la aplicación OAuth registrada.

    Captura de pantalla del ID y el secreto del cliente para la aplicación de OAuth registrada.

Registro de la configuración de OAuth en Azure DevOps Server

  1. Inicie sesión en el portal web de Azure DevOps Server.

  2. Agregue la configuración de Oauth de GitHub Enterprise a la colección de Azure DevOps Server.

  3. Seleccione Configuración de administrador>Configuraciones de OAuth>Agregar configuración de Oauth.

    Captura de pantalla que muestra la secuencia de pasos para agregar la configuración de OAuth.

  4. Introduzca la información y, a continuación, seleccione Crear.

    Captura de pantalla del cuadro de diálogo Configuración de OAuth.

Conexión de Azure DevOps Server a GitHub Enterprise Server

Puede conectar hasta 250 repositorios de GitHub a un proyecto de Azure Boards.

Nota:

La conexión a más de 100 repositorios de GitHub requiere Azure DevOps Server 2020.1 o una versión posterior.
La conexión a los repositorios de GitHub.com requiere Azure DevOps Server 2020.1.1, revisión 2 o una versión posterior.

Puede conectar hasta 100 repositorios de GitHub a un proyecto de Azure Boards. Este límite no se puede cambiar.

  1. Abra el portal web de Azure DevOps Server.

  2. Seleccione el logotipo de Azure DevOps para abrir Proyectos y, a continuación, elija el proyecto de Azure Boards que desea configurar para conectarse a los repositorios de GitHub Enterprise.

  1. Seleccione Configuración del proyecto>Conexiones de GitHub.

    Captura de pantalla de Configuración del proyecto>Conexiones de GitHub.

  2. Si es la primera vez que realiza una conexión desde el proyecto, elija el método de autenticación que desea usar para realizar la conexión:

    Captura de pantalla de la primera conexión con credenciales de GitHub.

    De lo contrario, seleccione Nueva conexión y seleccione el método de autenticación en el cuadro de diálogo Nueva conexión.

  1. Seleccione Configuración del proyecto>Conexiones de GitHub>Conexión de la cuenta de GitHub Enterprise.

    Captura de pantalla de la configuración del proyecto con integraciones seleccionadas.

    O bien, elija un token de acceso personal o un nombre de usuario y una contraseña, si usa esas credenciales.

Conectar con OAuth

Elija la configuración que configuró en el paso 4 de Registro de la configuración de OAuth en Azure DevOps Server. A continuación, seleccione Conectar.

Captura de pantalla de Nueva conexión de GitHub Enterprise, cuadro de diálogo de Conexión de OAuth.

Conectarse con un token de acceso personal

  1. Para crear un PAT, consulte Creación de un token de acceso personal.

    Sugerencia

    Al crear el PAT de GitHub, asegúrese de que incluye estos ámbitos: repo, admin:repo_hook, read:user, user:email.

  2. Escriba la dirección URL del servidor de GitHub Enterprise y las credenciales del token de acceso personal reconocidas por ese servidor. Y, a continuación, seleccione Conectar.

Captura de pantalla de inicio de sesión con PAT.

Conectar con nombre de usuario y contraseña

  1. Escriba la dirección URL del servidor de GitHub Enterprise y las credenciales de la cuenta de administrador reconocidas por ese servidor. A continuación, seleccione Conectar.

Captura de pantalla de inicio de sesión con nombre de usuario y contraseña.

  1. En el cuadro de diálogo se enumeran todos los repositorios para los que tiene derechos de administración de GitHub. Puede alternar entre Míos y Todos para determinar si aparecen otros y, a continuación, comprobar los que desea agregar. Seleccione Guardar cuando haya terminado.

    Captura de pantalla de los repositorios que se van a seleccionar para agregar.

  2. Para conectarse a una cuenta u organización de GitHub desde Azure Boards por primera vez, también debe instalar la aplicación Azure Boards para GitHub. Complete la integración siguiendo los procedimientos que se indican en Confirmación de la conexión.

Solución de problemas de conexión

La integración de Azure Boards y GitHub se basa en varios protocolos de autenticación para admitir la conexión. Los cambios en el ámbito de permisos o las credenciales de autenticación de un usuario pueden provocar la revocación de los repositorios de GitHub conectados a Azure Boards.

Para información general sobre la integración que admite la aplicación Azure Boards para GitHub, consulte Integración de Azure Boards con GitHub.

Opciones de autenticación admitidas

Las siguientes opciones de autenticación se admiten en función de la plataforma de GitHub a la que desea conectarse.

Plataforma

GitHub.com

Servidor de GitHub Enterprise

Azure DevOps Services

  • Cuenta de usuario de GitHub.com
  • Un token de acceso personal (PAT)
  • OAuth
  • PAT
  • Nombre de usuario más contraseña

Azure DevOps Server 2020

No aplicable

  • PAT
  • Nombre de usuario más contraseña

Azure DevOps Server 2019

No aplicable

  • OAuth
  • PAT
  • Nombre de usuario más contraseña

Nota:

Con la aplicación Azure Boards para GitHub, Azure Boards y Azure DevOps Services se integran con repositorios de GitHub.com y GitHub Enterprise Server. Azure DevOps Server 2019 y versiones posteriores admiten la integración solo con repositorios de GitHub Enterprise Server. No se admite la integración con otros repositorios de Git.

Resolución de problemas de acceso

Cuando la conexión de Azure Boards a GitHub ya no tiene acceso, muestra un estado de alerta en la interfaz de usuario con una X roja. Mantenga el puntero sobre la alerta e indicará que las credenciales ya no son válidas. Para corregir el problema, quite la conexión y vuelva a crear una nueva.

Captura de pantalla de conexión con error.

Cuando la conexión de Azure Boards a GitHub ya no tiene acceso, muestra un estado de alerta en la interfaz de usuario con una X roja que presenta una información sobre herramientas como, por ejemplo, No se puede conectar con GitHub.

Considere las siguientes soluciones:

  • Si la conexión usa OAuth:

    • La aplicación Azure Boards tenía denegado su acceso para uno de los repositorios.

    • GitHub podría no estar disponible o no accesible. Esta falta de disponibilidad podría deberse a una interrupción en el servicio o un problema de infraestructura o red en el entorno local. Puede comprobar el estado del servicio en los vínculos siguientes:

      Elimine la conexión con el repositorio de GitHub y vuélvala a crear. Esta conexión recién creada hace que GitHub pida que vuelva a autorizar Azure Boards.

  • Si la conexión usa un PAT:

    • Es posible que el PAT se haya revocado o que los ámbitos de permisos necesarios hayan cambiado y no sean suficientes.

    • Es posible que el usuario haya perdido los permisos de administrador en el repositorio de GitHub.

      Vuelva a crear el PAT y asegúrese de que el ámbito del token incluye los permisos necesarios: repo, read:user, user:email, admin:repo_hook.

Actualización de las definiciones XML para tipos de elementos de trabajo elegidos

Si su organización usa el modelo de proceso XML hospedado o XML en el entorno local para personalizar la experiencia de seguimiento del trabajo y desea vincular y ver los tipos de vínculo de GitHub en la sección Desarrollo de los formularios de elementos de trabajo, debe actualizar las definiciones XML de los tipos de elementos de trabajo.

Por ejemplo, si desea vincular casos de usuario y errores a confirmaciones de GitHub y solicitudes de incorporación de cambios en la sección Desarrollo, debe actualizar las definiciones XML de los casos de usuario y los errores.

Siga la secuencia de tareas proporcionadas en el modelo de proceso XML hospedado para actualizar las definiciones XML. Para cada tipo de elemento de trabajo, busque la sección Group Label="Development" y agregue las dos líneas siguientes en la sintaxis del código siguiente para admitir los tipos de vínculos externos: Confirmación de GitHub y Solicitud de incorporación de cambios de GitHub.

             <ExternalLinkFilter Type="GitHub Pull Request" />  
             <ExternalLinkFilter Type="GitHub Commit" />  

Cuando se actualiza, la sección debe aparecer como se muestra a continuación.

<Group Label="Development">  
   <Control Type="LinksControl" Name="Development">  
      <LinksControlOptions ViewMode="Dynamic" ZeroDataExperience="Development" ShowCallToAction="true">  
         <ListViewOptions GroupLinks="false">   
         </ListViewOptions>  
         <LinkFilters>  
             <ExternalLinkFilter Type="Build" />  
             <ExternalLinkFilter Type="Integrated in build" />  
             <ExternalLinkFilter Type="Pull Request" />  
             <ExternalLinkFilter Type="Branch" />  
             <ExternalLinkFilter Type="Fixed in Commit" />  
             <ExternalLinkFilter Type="Fixed in Changeset" />  
             <ExternalLinkFilter Type="Source Code File" />  
             <ExternalLinkFilter Type="Found in build" />  
             <ExternalLinkFilter Type="GitHub Pull Request" />  
             <ExternalLinkFilter Type="GitHub Commit" />  
         </LinkFilters>  
      </LinksControlOptions>  
   </Control>  
</Group>  

Pasos siguientes