> ## 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.

# Integração com Azure DevOps

> Trabalhe com o Devin diretamente nos repositórios do Azure DevOps

<Info>
  O Devin também oferece suporte à conexão com o Azure DevOps por meio de um service principal do Microsoft Entra, o que não exige uma conta de serviço dedicada com privilégios elevados de administrador de diretório. Dependendo dos seus requisitos, esse fluxo pode ser mais adequado — consulte [Azure DevOps (Service Principal)](/pt-BR/enterprise/integrations/azure-devops-service-principal).
</Info>

<div id="why-integrate-devin-with-azure-devops">
  ## Por que integrar o Devin ao Azure DevOps?
</div>

Integrar o Devin à sua organização do Azure DevOps permite que ele clone repositórios, crie pull requests e colabore de forma eficaz com sua equipe. Essa integração possibilita que o Devin trabalhe perfeitamente dentro do seu fluxo de trabalho de desenvolvimento existente.

Ao contrário de algumas outras integrações de SCM, o Azure DevOps não exibe aplicativos de terceiros da mesma maneira. Em vez disso, todo o gerenciamento de conexões é feito dentro do Devin em **Enterprise Settings > Integrations**.

<div id="prerequisites">
  ## Pré-requisitos
</div>

Antes de configurar a integração com o Azure DevOps, você precisará:

1. **Criar um usuário dedicado do Azure DevOps para o Devin** - Crie uma nova conta do Azure DevOps especificamente para o Devin (por exemplo, `devin@yourcompany.com`). Essa conta de serviço dedicada permite uma gestão de acesso mais simples e registros de auditoria mais claros.

2. **Conceder ao usuário do Devin uma função de administrador adequada** - A nova conta de serviço do Devin deve ser capaz de conceder consentimento de administrador para o tenant (Application Administrator, Cloud Application Administrator ou Global Administrator). A Microsoft restringe o acesso de aplicativos de terceiros, a menos que um administrador com privilégios suficientes conceda consentimento em nível de tenant.

3. **Preparar para o fluxo de conexão** - Para concluir a integração, você precisará estar:
   * Conectado ao **Devin** com sua conta pessoal
   * Conectado ao **Azure DevOps** com a conta de serviço do Devin (a nova conta que pode conceder consentimento de administrador para o seu tenant)

<Note>
  Ambas as sessões do navegador devem permanecer ativas durante o processo de configuração da integração — sua conta do Devin para iniciar a conexão e a conta de serviço do Devin no Azure DevOps para autorizar o consentimento OAuth.
</Note>

<div id="authentication-and-permissions">
  ## Autenticação e permissões
</div>

Devin usa OAuth 2.0 por meio do MSAL (Microsoft Authentication Library) da Microsoft para se conectar ao Azure DevOps. A conta de serviço do Devin precisa ser capaz de conceder o consentimento de administrador para o tenant (Application Administrator, Cloud Application Administrator ou Global Administrator) para concluir o fluxo de OAuth. O Azure DevOps funciona com contas de serviço, então o Devin se conecta usando a identidade do usuário Devin autorizada em vez de um aplicativo registrado.

<div id="rbac-and-permission-model">
  ### Modelo de RBAC e Permissões
</div>

A integração do Devin com o Azure DevOps foi implementada com um modelo rígido de Controle de Acesso Baseado em Funções (RBAC), que separa autenticação da autorização. Isso garante que o Devin só acesse repositórios explicitamente autorizados por administradores Enterprise.

Quando você conecta o Azure DevOps ao Devin:

1. Um registro de conexão é criado com o refresh token criptografado, vinculado à identidade do usuário
2. O Devin gera registros de permissões para definir quais organizações, projetos e repositórios são acessíveis
3. Em tempo de execução, são feitas verificações em todos os repositórios, que são comparadas com a lista de permissões para garantir o cumprimento dos limites de acesso

Para clientes Enterprise, as permissões podem ser replicadas entre organizações, e todo o acesso em nível de repositório é gerenciado pela **Devin Enterprise UI**, em Integrations.

<div id="azure-devops-hierarchy">
  ## Hierarquia do Azure DevOps
</div>

O Azure DevOps usa uma hierarquia de três níveis: **Organização > Projeto > Repositório**. O Devin lida com essa estrutura internamente e pode identificar e interagir com repositórios em qualquer nível, desde que o usuário conectado tenha acesso.

<div id="setting-up-the-integration">
  ## Configurando a Integração
</div>

1. **Acesse ambas as contas:**
   * Entre na sua conta do Devin em [app.devin.ai](https://app.devin.ai)
   * Em um navegador separado ou em uma janela anônima, entre no Azure DevOps com a conta de serviço do Devin (a conta que pode conceder consentimento de administrador para seu tenant)

2. Na sua conta Enterprise do Devin, navegue até [**Settings > Enterprise Settings > Integrations**](https://app.devin.ai/settings/integrations)

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

3. Quando estiver na página Integrations, clique no botão **Connect to Azure DevOps**.

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

4. Isso abrirá uma nova guia do navegador, solicitando que você conceda ao Devin permissão para acessar sua organização do Azure DevOps. **Certifique-se de que você está conectado com a conta de serviço do Devin** (a conta que pode conceder consentimento de administrador para seu tenant).

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

5. Depois de conceder as permissões, você verá, na página Integrations em Enterprise Settings, sua integração com o Azure DevOps e seus repositórios conectados.

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

6. Agora que o Devin tem acesso ao seu Azure DevOps, você pode conceder permissões a qualquer (ou a todas as) suborganizações dentro da sua conta Enterprise. Para fazer isso, selecione **Git Permissions** na sua integração com o Azure DevOps, escolha uma suborganização e conceda permissões no nível de grupo ou de repositório.

<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="Azure DevOps Git Permissions" width="2414" height="630" data-path="images/enterprise/ADO-git-permissions.png" />
</Frame>

7. Para cada organização que recebeu permissões, navegue até **Devin's Settings > Machine do Devin**, clique em **+ Repository** e integre os repositórios à Machine do Devin.

<div id="what-devin-can-access">
  ## O que o Devin pode acessar
</div>

A integração do Devin com o Azure DevOps é focada **apenas em operações com Git**, incluindo:

| Capacidade               | Descrição                                                 |
| ------------------------ | --------------------------------------------------------- |
| Listar repositórios      | Exibir repositórios disponíveis e seus metadados          |
| Ler branches             | Acessar informações de branches e histórico de commits    |
| Criar pull requests      | Abrir novas PRs (pull requests) para alterações de código |
| Visualizar pull requests | Acessar eventos, comentários e status de PRs              |
| Fazer push de código     | Enviar novas branches e commits para repositórios         |

<div id="what-devin-cannot-access">
  ## O que o Devin não pode acessar
</div>

A integração é deliberadamente limitada à funcionalidade do Git. O Devin **não** tem acesso a:

* Itens de trabalho (boards)
* Pipelines ou builds
* Planos de teste
* Artefatos
* Wiki
* Conexões de serviço

<Note>
  Se sua organização precisar que o Devin passe a oferecer suporte a essas áreas adicionais no futuro, isso exigirá escopos OAuth mais amplos e nova lógica de provedor. Entre em contato com [enterprise@cognition.ai](mailto:enterprise@cognition.ai) para discutir seus requisitos.
</Note>

<div id="security-considerations">
  ## Considerações de segurança
</div>

O sistema é projetado com base no princípio do menor privilégio:

* **OAuth fornece capacidade, RBAC impõe limites** - OAuth concede a capacidade técnica de acessar o Azure DevOps, mas uma camada adicional de permissões de Git impõe os limites reais de acesso
* **Acesso explícito apenas** - Devin nunca acessa repositórios ou projetos que não tenham sido explicitamente autorizados na interface Enterprise
* **Credenciais criptografadas** - Todos os tokens de atualização são criptografados e armazenados com segurança
* **Registro de auditoria** - Usar uma conta de serviço dedicada torna mais fácil rastrear a atividade do Devin nos logs de auditoria do Azure DevOps
* **Políticas de branch respeitadas** - As PRs do Devin estão sujeitas às mesmas políticas de branch e requisitos de revisão que as de qualquer outro colaborador

<div id="best-practices">
  ## Melhores práticas
</div>

* **Use a conta de serviço dedicada do Devin** - Sempre use a conta do Azure DevOps dedicada criada para o Devin, em vez de se conectar com uma conta pessoal
* **Habilite políticas de branch** - Configure políticas de branch no Azure DevOps para garantir que todas as alterações passem por processos adequados de revisão antes de serem mescladas
* **Use permissões em nível de repositório** - Conceda ao Devin acesso apenas aos repositórios específicos de que ele precisa, em vez de acesso a toda a organização
* **Monitore os logs de acesso** - Revise regularmente os logs de auditoria do Azure DevOps para acompanhar a atividade do Devin
* **Documente sua configuração** - Mantenha documentação interna sobre quais repositórios o Devin pode acessar e por quê

<Tip>
  Recomendamos configurar políticas de branch no Azure DevOps para garantir que todas as alterações passem por processos adequados de revisão antes de serem mescladas.
</Tip>

<Note>
  Se o seu Microsoft Entra ID estiver integrado ao Sistema de Informações de Recursos Humanos (HRIS) da sua organização, etapas adicionais de configuração podem ser necessárias para concluir a integração com o Azure DevOps. Entre em contato com a [equipe de suporte do Devin](mailto:enterprise@cognition.ai) para obter assistência com configurações avançadas.
</Note>

<div id="troubleshooting">
  ## Solução de problemas
</div>

**Falha no consentimento OAuth:**

* Verifique se a conta de serviço do Devin pode conceder consentimento de administrador para o tenant (requer a função de Application Administrator, Cloud Application Administrator ou Global Administrator)
* Confira se o tenant do Microsoft Entra ID permite consentimento para aplicativos de terceiros
* Certifique-se de que você está conectado ao Azure DevOps com a conta de serviço do Devin (e não com sua conta pessoal) ao concluir o fluxo OAuth

**Devin não consegue ver meus repositórios:**

* Verifique se a conta de serviço do Devin tem acesso aos repositórios no Azure DevOps
* Confira se as permissões de repositório foram concedidas nas configurações Enterprise do Devin
* Certifique-se de que os repositórios foram adicionados à Machine do Devin

**Falha ao criar pull request:**

* Confirme se a conta de serviço do Devin tem permissões de contribuidor no repositório de destino
* Confira se as políticas de branch não estão bloqueando a criação do PR
* Verifique se a branch de destino existe e está acessível

<div id="network-setup">
  ## Configuração de rede
</div>

Se você tiver a filtragem de IP ativada na sua instância do Azure DevOps, precisará incluir os endereços IP do Devin na lista de permissões.

Para ver a lista mais atualizada, consulte nossa [documentação sobre lista de IPs permitidos](/pt-BR/admin/common-issues#ip-whitelisting).
