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

# Azure DevOps (Entidad de servicio)

> Conecta Devin con Azure DevOps mediante una entidad de servicio de Microsoft Entra

<div id="overview">
  ## Resumen
</div>

Devin se conecta a Azure DevOps mediante una entidad de servicio de Microsoft Entra. Tu Admin aprueba en tu tenant la aplicación **Cognition Azure DevOps Service Principal** publicada por Cognition, lo que crea una entidad de servicio que luego agregas a tu organización de Azure DevOps con los permisos que elijas.

* Solo se solicita `User.Read` durante la aprobación de Entra; esto sirve únicamente para establecer la identidad
* La aprobación de Entra por sí sola **no** otorga acceso a repositorios ni al código
* Todo el acceso a los repositorios está controlado por los permisos que asignas en Azure DevOps

A diferencia de otras integraciones de SCM, Azure DevOps no muestra las aplicaciones de terceros de la misma forma. Toda la gestión de conexiones se realiza dentro de Devin en **Settings > Settings de Enterprise > Integrations**.

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

Antes de configurar la integración de Azure DevOps, asegúrate de contar con:

1. **Cuenta Enterprise de Devin** con permiso para gestionar integraciones
2. **Admin de Microsoft Entra** que pueda otorgar el consentimiento de Admin para las aplicaciones
3. **Admin de la organización de Azure DevOps** que pueda agregar usuarios y asignar permisos

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

1. Inicia sesión en tu cuenta de Devin en [app.devin.ai](https://app.devin.ai).

2. En otro navegador o en una ventana de incógnito, inicia sesión en Azure DevOps (necesario para el paso 6).

3. En tu cuenta Enterprise de Devin, ve a **Settings > Settings de Enterprise > Integrations** y selecciona **Azure DevOps**.

4. Abre el menú desplegable del botón **Connect** y selecciona **Connect with service principal**.

<Frame>
  <img src="https://mintcdn.com/cognitionai/d4tSaSvcW_EO3rtt/images/enterprise/ADO-connect-service-principal.png?fit=max&auto=format&n=d4tSaSvcW_EO3rtt&q=85&s=6368b81bb8fc22f2f0425ad8eb809d17" alt="Conectar con una entidad de servicio" width="1466" height="676" data-path="images/enterprise/ADO-connect-service-principal.png" />
</Frame>

5. Se te redirige a Microsoft para conceder a Devin permiso en tu tenant. Tras aprobarlo, vuelves a la página de integración de Azure DevOps en Devin, que ahora muestra una sección **Add organization with service principal**.
   * La aprobación crea una entidad de servicio en tu tenant de Microsoft Entra
   * Este paso solo solicita `User.Read`; no concede acceso a los repositorios

6. En Azure DevOps, ve a **Organization Settings > Users**:
   * Haz clic en **Add Users** y agrega la entidad de servicio (`Cognition Azure DevOps Service Principal`)
   * Selecciona **Basic** como nivel de acceso (Stakeholder no es suficiente: las API requieren Basic)
   * Agrégala a todos los proyectos a los que quieras que Devin tenga acceso
   * Asigna la entidad de servicio a los Groups relevantes de Azure DevOps (normalmente, Project Contributors)

7. De vuelta en Devin, en la sección **Add organization with service principal** de la página de integración de Azure DevOps, introduce el nombre de la organización de Azure DevOps del paso anterior y haz clic en **Add**.

8. En Devin, selecciona **permiso de Git** en tu integración de Azure DevOps, elige una suborganización y concede permisos a nivel de Group o de Repository.

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

9. Para cada Organization a la que se le hayan concedido permisos, ve a **Devin's Settings > Devin's Machine**, haz clic en **+ Repository** e integra los repositorios.

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

La integración de Devin con Azure DevOps se limita a **operaciones de Git únicamente**:

| Capacidad           | 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 cambios de código                          |
| Ver pull requests   | Acceder a los eventos, comentarios y estado de las PR           |
| Subir código        | Enviar nuevas ramas y commits a los repositorios                |

Devin **no** tiene acceso a elementos de trabajo, pipelines, compilaciones, planes de prueba, artefactos, wiki ni conexiones de servicio.

<Note>
  Si tu organización necesita que Devin admita áreas adicionales de Azure DevOps en el futuro, comunícate con [enterprise@cognition.ai](mailto:enterprise@cognition.ai) para analizar tus requisitos.
</Note>

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

* **Permisos mínimos de Entra** — Solo se solicita `User.Read`. No se solicita acceso de lectura a todo el directorio, visibilidad de la pertenencia a grupos ni control administrativo.
* **Autorización explícita** — La aprobación de Entra por sí sola no otorga acceso a Azure DevOps. Todo acceso al repositorio debe ser asignado explícitamente por tu Admin de Azure DevOps.
* **Credenciales cifradas** — Todos los tokens están cifrados y se almacenan de forma segura.
* **Acceso limitado por ámbito** — Los permisos pueden limitarse a proyectos, repositorios y operaciones específicos mediante la interfaz de Devin Enterprise.
* **Trazabilidad** — La actividad se registra en los registros de inicio de sesión de Entra y en los registros de auditoría de Azure DevOps.
* **Se respetan las políticas de rama** — Las PR de Devin están sujetas a las mismas políticas de rama y requisitos de revisión que cualquier otro colaborador.

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

* **Usa permisos a nivel de repositorio** — Otorga a Devin acceso solo a los repositorios y proyectos específicos que necesita, en lugar de darle acceso a toda la organización.
* **Habilita las directivas de rama** — Configura directivas de rama en Azure DevOps para garantizar que todos los cambios pasen por los procesos de revisión adecuados antes de que se fusionen.
* **Supervisa los registros de auditoría** — Revisa periódicamente los registros de auditoría de Azure DevOps y los registros de inicio de sesión de Entra de la entidad de servicio.

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

**Error al otorgar el consentimiento de Admin:**

* Verifica que el usuario aprobador tenga permiso para otorgar consentimiento de Admin para aplicaciones en tu tenant de Entra
* Si tu tenant restringe el consentimiento para aplicaciones, puede que un Administrador global o un Administrador de aplicaciones en la nube deba otorgarlo

**La entidad de servicio no aparece en Azure DevOps:**

* Verifica que el consentimiento de Admin se haya completado correctamente en tu portal de Entra, en **Enterprise Applications** (busca `Cognition Azure DevOps Service Principal`)
* Asegúrate de que la entidad de servicio se haya agregado explícitamente a tu organización de Azure DevOps en **Organization Settings > Users**

**Conditional Access / MFA bloquea el acceso:**

* Si la entidad de servicio está sujeta a políticas de Conditional Access que exigen MFA, la renovación del token fallará silenciosamente. Crea una exclusión de Conditional Access para la entidad de servicio en la aplicación de Devin.

**Devin no puede ver mis repositorios:**

* Verifica que la entidad de servicio se haya agregado a la organización de Azure DevOps en **Organization Settings > Users**
* Confirma que el nivel de acceso esté configurado como **Basic** (Stakeholder no es suficiente para acceder a la API)
* Comprueba que se hayan otorgado permisos de repositorio en los Settings de Enterprise de Devin
* Asegúrate de que los repositorios se hayan agregado a Devin's Machine

**Error al crear pull requests:**

* Confirma que la entidad de servicio tenga permisos de colaborador en el repositorio de destino
* Comprueba que las políticas de rama no estén bloqueando la creación de la 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 por IP en tu instancia de Azure DevOps, tendrás que 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 direcciones IP](/es/admin/common-issues#ip-whitelisting).
