> ## 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 (Entidade de Serviço)

> Conecte o Devin ao Azure DevOps usando uma entidade de serviço do Microsoft Entra

<div id="overview">
  ## Visão geral
</div>

O Devin se conecta ao Azure DevOps por meio de uma entidade de serviço do Microsoft Entra. Seu administrador aprova o aplicativo **Cognition Azure DevOps Service Principal**, publicado pela Cognition, no seu tenant, o que cria uma entidade de serviço que você adiciona à sua organização do Azure DevOps com as permissões que escolher.

* Apenas `User.Read` é solicitado durante a aprovação no Entra — isso estabelece apenas a identidade
* A aprovação no Entra, por si só, **não** concede acesso a repositórios nem ao código
* Todo o acesso aos repositórios é controlado pelas permissões que você atribui no Azure DevOps

Ao contrário de algumas outras integrações de SCM, o Azure DevOps não exibe apps de terceiros da mesma forma. Todo o gerenciamento de conexões é feito no Devin, em **Configurações > Configurações Enterprise > Integrações**.

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

Antes de configurar a integração com o Azure DevOps, certifique-se de que você tenha:

1. **conta Enterprise do Devin** com permissão para gerenciar integrações
2. **administrador do Microsoft Entra** que possa conceder consentimento administrativo para aplicativos
3. **administrador da organização do Azure DevOps** que possa adicionar usuários e atribuir permissões

<div id="setting-up-the-integration">
  ## Configuração da integração
</div>

1. Entre na sua conta do Devin em [app.devin.ai](https://app.devin.ai).

2. Em outro navegador ou em uma janela anônima, entre no Azure DevOps (necessário para a etapa 6).

3. Na sua conta Enterprise do Devin, acesse **Configurações > Configurações Enterprise > Integrações** e selecione **Azure DevOps**.

4. Abra o menu suspenso no botão **Connect** e selecione **Connect with entidade de serviço**.

<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 com entidade de serviço" width="1466" height="676" data-path="images/enterprise/ADO-connect-service-principal.png" />
</Frame>

5. Você será redirecionado à Microsoft para conceder ao Devin permissão para acessar seu tenant. Após aprovar, você voltará para a página de integração do Azure DevOps no Devin, que agora exibirá a seção **Add organization with entidade de serviço**.
   * A aprovação cria um entidade de serviço no seu tenant do Microsoft Entra
   * Esta etapa solicita apenas `User.Read` — ela não concede acesso aos repositórios

6. No Azure DevOps, acesse **Configurações da organização > Users**:
   * Clique em **Add Users** e adicione o entidade de serviço (`Cognition Azure DevOps Service Principal`)
   * Selecione **Basic** como nível de acesso (Stakeholder não é suficiente — as APIs exigem Basic)
   * Adicione a todos os projetos aos quais você quer que o Devin tenha acesso
   * Atribua o entidade de serviço aos Groups relevantes do Azure DevOps (normalmente Project Contributors)

7. De volta ao Devin, na seção **Add organization with entidade de serviço** da página de integração do Azure DevOps, insira o nome da organização do Azure DevOps da etapa anterior e clique em **Add**.

8. No Devin, selecione **Git Permissions** na sua integração do Azure DevOps, escolha uma sub-organização e conceda permissões no nível de Group ou 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="Permissões Git do Azure DevOps" width="2414" height="630" data-path="images/enterprise/ADO-git-permissions.png" />
</Frame>

9. Para cada Organization que recebeu permissões, acesse **Configurações do Devin > Devin's Machine**, clique em **+ Repository** e integre os repositórios.

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

A integração do Devin com o Azure DevOps é limitada **exclusivamente a operações Git**:

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

O Devin **não** tem acesso a itens de trabalho, pipelines, builds, planos de teste, artefatos, wiki ou conexões de serviço.

<Note>
  Se a sua organização precisar que o Devin ofereça suporte a outras áreas do Azure DevOps no futuro, 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>

* **Permissões mínimas do Entra** — Apenas `User.Read` é solicitado. Não há acesso de leitura ao diretório inteiro, visibilidade de associação a grupos nem controle administrativo.
* **Autorização explícita** — A aprovação no Entra, por si só, não concede acesso ao Azure DevOps. Todo acesso ao repositório deve ser atribuído explicitamente pelo admin do Azure DevOps.
* **Credenciais criptografadas** — Todos os tokens são criptografados e armazenados com segurança.
* **Acesso com escopo definido** — As permissões podem ser limitadas a projetos, repositórios e operações específicos na UI Enterprise do Devin.
* **Auditabilidade** — A atividade é registrada nos logs de entrada do Entra e 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 aos mesmos requisitos de revisão que qualquer outro colaborador.

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

* **Use permissões no nível do repositório** — Conceda ao Devin acesso apenas aos repositórios e projetos específicos de que ele precisa, em vez de conceder acesso a toda a organização.
* **Ative políticas de branch** — Configure políticas de branch no Azure DevOps para garantir que todas as alterações passem pelos processos de revisão adequados antes do merge.
* **Monitore os logs de auditoria** — Revise regularmente os logs de auditoria do Azure DevOps e os logs de entrada do Entra relacionados à atividade da entidade de serviço.

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

**Falha no consentimento do administrador:**

* Verifique se o usuário que está aprovando tem permissão para conceder consentimento de administrador para aplicativos no seu tenant do Entra
* Se o seu tenant restringe o consentimento para aplicativos, talvez seja necessário que um Administrador Global ou Administrador de Aplicativos na Nuvem conceda o consentimento

**Entidade de serviço não visível no Azure DevOps:**

* Verifique se o consentimento do administrador foi concluído com sucesso no portal do Entra, em **Enterprise Applications** (procure por `Cognition Azure DevOps Service Principal`)
* Certifique-se de que a entidade de serviço foi adicionada explicitamente à sua organização do Azure DevOps em **Configurações da organização > Users**

**Acesso Condicional / MFA bloqueando o acesso:**

* Se a entidade de serviço estiver sujeita a políticas de Acesso Condicional que exigem MFA, a atualização do token falhará silenciosamente. Crie uma exclusão de Acesso Condicional para a entidade de serviço no aplicativo Devin.

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

* Verifique se a entidade de serviço foi adicionada à organização do Azure DevOps em **Configurações da organização > Users**
* Confirme se o nível de acesso está definido como **Basic** (Stakeholder não é suficiente para acesso à API)
* Verifique se as permissões do repositório foram concedidas nas Configurações Enterprise do Devin
* Certifique-se de que os repositórios foram adicionados à Devin's Machine

**Falha na criação de pull request:**

* Confirme se a entidade de serviço tem permissões de Colaborador no repositório de destino
* Verifique se as políticas de branch não estão bloqueando a criação da 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 instância do Azure DevOps, precisará incluir os endereços IP do Devin na lista de permissões.

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