> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Integración con Azure DevOps

> Trabaja con Devin directamente en tus repositorios de Azure DevOps

<Info>
  Devin también admite la conexión a Azure DevOps mediante una entidad de servicio de Microsoft Entra, lo que no requiere una cuenta de servicio dedicada con privilegios elevados de administrador del directorio. Según tus requisitos, ese flujo puede ser una mejor opción; consulta [Azure DevOps (Service Principal)](/es/enterprise/integrations/azure-devops-service-principal).
</Info>

<div id="why-integrate-devin-with-azure-devops">
  ## ¿Por qué integrar Devin con Azure DevOps?
</div>

Integrar Devin con tu organización de Azure DevOps permite que Devin clone repositorios, cree pull requests (PR) y colabore de forma eficaz con tu equipo. Esta integración permite que Devin trabaje sin problemas dentro de tu flujo de desarrollo existente.

A diferencia de algunas otras integraciones de SCM, Azure DevOps no muestra las aplicaciones de terceros de la misma manera. En su lugar, toda la gestión de conexiones se realiza dentro de Devin, en **Enterprise Settings > Integrations**.

<div id="prerequisites">
  ## Requisitos previos
</div>

Antes de configurar la integración con Azure DevOps, deberás:

1. **Crear un usuario de Azure DevOps dedicado para Devin** - Crea una nueva cuenta de Azure DevOps específicamente para Devin (por ejemplo, `devin@yourcompany.com`). Esta cuenta de servicio dedicada proporciona una gestión de acceso más sencilla y mejores registros de auditoría.

2. **Conceder al usuario de Devin un rol de Admin suficiente** - La nueva cuenta de servicio de Devin debe poder otorgar consentimiento de Admin para el tenant (Application Administrator, Cloud Application Administrator o administrador global). Microsoft restringe el acceso de aplicaciones de terceros a menos que un Admin con privilegios suficientes otorgue consentimiento a nivel de tenant.

3. **Prepararte para el flujo de conexión** - Para completar la integración, deberás:
   * Iniciar sesión en **Devin** con tu cuenta personal
   * Iniciar sesión en **Azure DevOps** con la cuenta de servicio de Devin (la nueva cuenta que puede otorgar consentimiento de Admin para tu tenant)

<Note>
  Ambas sesiones del navegador deben permanecer activas durante el proceso de configuración de la integración: tu cuenta de Devin para iniciar la conexión y la cuenta de servicio de Devin en Azure DevOps para autorizar el consentimiento de OAuth.
</Note>

<div id="authentication-and-permissions">
  ## Autenticación y permisos
</div>

Devin utiliza OAuth 2.0 mediante MSAL de Microsoft (Microsoft Authentication Library) para conectarse a Azure DevOps. La cuenta de servicio de Devin debe poder otorgar el consentimiento de Admin para el tenant (Application Administrator, Cloud Application Administrator o administrador global) a fin de completar el flujo de OAuth. Azure DevOps funciona mediante cuentas de servicio, por lo que Devin se conecta usando la identidad de usuario autorizada de Devin en lugar de una aplicación registrada.

<div id="rbac-and-permission-model">
  ### Modelo de RBAC y permisos
</div>

La integración de Devin con Azure DevOps está diseñada con un modelo estricto de control de acceso basado en roles (RBAC) que separa la autenticación de la autorización. Esto garantiza que Devin solo acceda a los repositorios permitidos explícitamente por los administradores de la empresa.

Cuando conectas Azure DevOps a Devin:

1. Se crea un registro de conexión con el token de actualización cifrado, vinculado a la identidad del usuario.
2. Devin genera registros de permisos para definir qué organizaciones, proyectos y repositorios son accesibles.
3. En tiempo de ejecución, se realizan comprobaciones en todos los repositorios y se comparan con la lista de permisos para hacer respetar los límites de acceso.

Para clientes empresariales, los permisos se pueden replicar en todas las organizaciones, y todo el acceso a nivel de repositorio se gestiona mediante la **Devin Enterprise UI** en Integrations.

<div id="azure-devops-hierarchy">
  ## Jerarquía de Azure DevOps
</div>

Azure DevOps utiliza una jerarquía de tres niveles: **Organización > Proyecto > Repositorio**. Devin gestiona esta estructura internamente y puede detectar e interactuar con repositorios en cualquiera de los niveles, siempre que el usuario autenticado tenga acceso.

<div id="setting-up-the-integration">
  ## Configuración de la integración
</div>

1. **Inicia sesión en ambas cuentas:**
   * Inicia sesión en tu cuenta de Devin en [app.devin.ai](https://app.devin.ai)
   * En un navegador separado o en una ventana de incógnito, inicia sesión en Azure DevOps con la cuenta de servicio de Devin (la cuenta que puede otorgar el consentimiento de Admin para tu tenant)

2. En tu cuenta Enterprise de Devin, navega a [**Settings > Settings de Enterprise > Integrations**](https://app.devin.ai/settings/integrations)

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/3ebez2F_BP_PSsOZ/images/enterprise/Connect-ADO.png?fit=max&auto=format&n=3ebez2F_BP_PSsOZ&q=85&s=47ef1a34aefb7078de8a85c3df00eda8" alt="Azure DevOps Connected Accounts" width="3590" height="1856" data-path="images/enterprise/Connect-ADO.png" />
</Frame>

3. Una vez en la página de Integrations, haz clic en el botón **Connect to Azure DevOps**.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/3ebez2F_BP_PSsOZ/images/enterprise/Connect-To-ADO.png?fit=max&auto=format&n=3ebez2F_BP_PSsOZ&q=85&s=4075d3d642d3ee18d6a4adc9ca8ca18b" alt="Connect To Azure DevOps" width="1240" height="508" data-path="images/enterprise/Connect-To-ADO.png" />
</Frame>

4. Esto abrirá una nueva pestaña del navegador, en la que se te pedirá que concedas a Devin permisos sobre tu organización de Azure DevOps. **Asegúrate de haber iniciado sesión con la cuenta de servicio de Devin** (la cuenta que puede otorgar el consentimiento de Admin para tu tenant).

<Frame>
  <div style={{maxWidth: '400px', margin: '0 auto'}}>
    <img src="https://mintcdn.com/cognitionai-enterprise/JQ4gdhcxD51zUhW4/images/enterprise/ADO-Permission.png?fit=max&auto=format&n=JQ4gdhcxD51zUhW4&q=85&s=8466ae7515f4df2f1dc3f25c501af951" alt="Azure DevOps Permissions" width="930" height="1224" data-path="images/enterprise/ADO-Permission.png" />
  </div>
</Frame>

5. Una vez que hayas concedido los permisos, verás tu integración de Azure DevOps y tus repositorios conectados nuevamente en la página de Integrations en Settings de Enterprise.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/3ebez2F_BP_PSsOZ/images/enterprise/ADO-Org-in-Devin.png?fit=max&auto=format&n=3ebez2F_BP_PSsOZ&q=85&s=25ec108c99fbbc4027160d4d1f092035" alt="Azure DevOps Integrated" width="1216" height="1118" data-path="images/enterprise/ADO-Org-in-Devin.png" />
</Frame>

6. Ahora que Devin tiene acceso a tu Azure DevOps, puedes conceder permisos a cualquiera o a todas las suborganizaciones dentro de tu cuenta Enterprise. Para hacerlo, selecciona **permiso de Git** en tu integración de Azure DevOps, elige una suborganización y otorga permisos ya sea a nivel de grupo o de repositorio.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/3ebez2F_BP_PSsOZ/images/enterprise/ADO-git-permissions.png?fit=max&auto=format&n=3ebez2F_BP_PSsOZ&q=85&s=a7209e1948168deeed05b037afe4a3ef" alt="Azure DevOps Git Permissions" width="2414" height="630" data-path="images/enterprise/ADO-git-permissions.png" />
</Frame>

7. Para cada organización a la que se le hayan concedido permisos, navega a **Devin's Settings > Machine de Devin**, haz clic en **+ Repository** e integra los repositorios en Machine de Devin.

<div id="what-devin-can-access">
  ## A qué puede acceder Devin
</div>

La integración de Devin con Azure DevOps está enfocada **solo en operaciones de Git**, incluyendo:

| Funcionalidad           | Descripción                                                     |
| ----------------------- | --------------------------------------------------------------- |
| Listar repositorios     | Ver los repositorios disponibles y sus metadatos                |
| Leer ramas              | Acceder a la información de las ramas y al historial de commits |
| Crear pull requests     | Abrir nuevas PR para proponer cambios de código                 |
| Ver pull requests       | Acceder a eventos, comentarios y estado de las PR               |
| Realizar push de código | Realizar push de nuevas ramas y commits a los repositorios      |

<div id="what-devin-cannot-access">
  ## A qué no puede acceder Devin
</div>

La integración está deliberadamente limitada a la funcionalidad de Git. Devin **no** tiene acceso a:

* Elementos de trabajo (tableros)
* Pipelines o compilaciones
* Planes de prueba
* Artefactos
* Wiki
* Conexiones de servicio

<Note>
  Si su organización necesita que Devin admita estas áreas adicionales en el futuro, será necesario ampliar los ámbitos de OAuth y crear nueva lógica de proveedor. Póngase en contacto con [enterprise@cognition.ai](mailto:enterprise@cognition.ai) para analizar sus requisitos.
</Note>

<div id="security-considerations">
  ## Consideraciones de seguridad
</div>

El sistema está diseñado en torno al principio de mínimo privilegio:

* **OAuth proporciona capacidad, RBAC hace cumplir los límites** - OAuth otorga la capacidad técnica de acceder a Azure DevOps, pero una capa adicional de permisos de Git hace cumplir los límites reales de acceso
* **Solo acceso explícito** - Devin nunca accede a repositorios o proyectos a los que no se le haya otorgado acceso explícito en la interfaz de Enterprise
* **Credenciales cifradas** - Todos los tokens de actualización están cifrados y se almacenan de forma segura
* **Registro de auditoría** - Usar una cuenta de servicio dedicada facilita el seguimiento de la actividad de Devin en tus registros de auditoría de Azure DevOps
* **Se respetan las políticas de rama** - Los pull requests (PR) de Devin están sujetos a las mismas políticas de rama y requisitos de revisión que los de cualquier otro colaborador

<div id="best-practices">
  ## Mejores prácticas
</div>

* **Usa la cuenta de servicio dedicada de Devin** - Utiliza siempre la cuenta de Azure DevOps dedicada creada para Devin en lugar de conectarte con una cuenta personal
* **Habilita las directivas de rama** - Configura directivas de rama en Azure DevOps para asegurarte de que todos los cambios pasen por los procesos de revisión adecuados antes de combinarse
* **Usa permisos a nivel de repositorio** - Concede a Devin acceso solo a los repositorios específicos que necesita, en lugar de acceso a toda la organización
* **Supervisa los registros de acceso** - Revisa periódicamente los registros de auditoría de Azure DevOps para ver la actividad de Devin
* **Documenta tu configuración** - Mantén documentación interna sobre a qué repositorios tiene acceso Devin y por qué

<Tip>
  Recomendamos configurar directivas de rama en Azure DevOps para asegurarte de que todos los cambios pasen por los procesos de revisión adecuados antes de combinarse.
</Tip>

<Note>
  Si tu Microsoft Entra ID está integrado con el sistema de información de recursos humanos de tu organización (HRIS, Human Resources Information System), es posible que se requieran pasos de configuración adicionales para completar la integración de Azure DevOps. Ponte en contacto con el [equipo de soporte de Devin](mailto:enterprise@cognition.ai) para obtener ayuda con la configuración avanzada.
</Note>

<div id="troubleshooting">
  ## Solución de problemas
</div>

**Error en el consentimiento de OAuth:**

* Verifica que la cuenta de servicio de Devin pueda otorgar consentimiento de Admin para el tenant (requiere el rol de Administrador de aplicaciones, Administrador de aplicaciones en la nube o administrador global)
* Comprueba que tu tenant de Microsoft Entra ID permita el consentimiento a aplicaciones de terceros
* Asegúrate de haber iniciado sesión en Azure DevOps con la cuenta de servicio de Devin (no con tu cuenta personal) al completar el flujo de OAuth

**Devin no puede ver mis repositorios:**

* Verifica que la cuenta de servicio de Devin tenga acceso a los repositorios en Azure DevOps
* Comprueba que se hayan otorgado permisos de repositorio en la Settings de Enterprise de Devin
* Asegúrate de que los repositorios se hayan agregado a la Machine de Devin

**Falla la creación del pull request (PR):**

* Confirma que la cuenta de servicio de Devin tenga permisos de colaborador en el repositorio de destino
* Comprueba que las políticas de rama no estén bloqueando la creación del PR
* Verifica que la rama de destino exista y sea accesible

<div id="network-setup">
  ## Configuración de red
</div>

Si tienes habilitado el filtrado de IP en tu instancia de Azure DevOps, deberás agregar las direcciones IP de Devin a la lista de permitidos.

Para ver la lista más actualizada, consulta nuestra [documentación sobre listas de permitidos de IP](/es/admin/common-issues#ip-whitelisting).
