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

# GitHub

> Trabalhe com o Devin diretamente em seus repositórios

<div id="why-integrate-devin-with-github">
  ## Por que integrar o Devin com o GitHub?
</div>

Integrar o Devin à sua organização no GitHub permite que ele crie pull requests, responda a comentários em PRs e colabore diretamente nos seus repositórios. Isso permite que o Devin atue como um colaborador pleno na sua equipe de engenharia.

Para começar, acesse [app.devin.ai](http://app.devin.ai) > **Settings** > **Integrations** > **GitHub**, clique em **Add Connection** e siga as instruções. Você selecionará quais repositórios o Devin poderá acessar e revisará as permissões necessárias.

<Note>
  **Usando GitHub Enterprise Server ou GitHub Enterprise Cloud com Data Residency?** Veja o [guia de integração com GitHub Enterprise Server](/pt-BR/enterprise/integrations/github-enterprise-server) para instruções de configuração.
</Note>

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

<Tip>Você precisa ser administrador da sua organização no GitHub para criar e gerenciar a integração do Devin. Está com problemas? Confira nossa página de [Problemas comuns](/pt-BR/admin/common-issues#i-m-unable-to-connect-my-github-organization).</Tip>

1. Na sua conta no Devin em [app.devin.ai](http://app.devin.ai), vá até **Settings** > **Integrations** > **GitHub** e clique em **Add Connection**.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/Add-GitHub-Connection.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=c7f5f670bcf2216e6883b99fbb267f49" alt="Devin" width="1264" height="1474" data-path="images/integrations/Add-GitHub-Connection.png" />
</Frame>

2. Se você ainda não estiver logado no GitHub, será solicitado que se autentique.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Authenticate.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=22f091a1ffec12d41b28b7ac2e955a77" alt="Devin" width="1004" height="1380" data-path="images/integrations/GitHub-Authenticate.png" />
</Frame>

3. Selecione a organização do GitHub que você quer conectar ao Devin.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Select-Organization.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=84eb317b909b6a1a4ab70742563a1eec" alt="Devin" width="1296" height="726" data-path="images/integrations/GitHub-Select-Organization.png" />
</Frame>

4. Escolha se deseja conceder ao Devin acesso a **All repositories** ou **Select repositories** para controlar quais repositórios o Devin poderá acessar.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Grant-Repository-Permissions.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=26c759c0d5fa426677ab3fa765a49952" alt="Devin" width="1004" height="652" data-path="images/integrations/GitHub-Grant-Repository-Permissions.png" />
</Frame>

5. Depois de concluir a autorização do GitHub, você será redirecionado para as configurações do Devin, onde poderá confirmar que a integração está ativa.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Connected.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=0381c62ef505b76d57ec7924614e45b6" alt="Devin" width="1212" height="326" data-path="images/integrations/GitHub-Connected.png" />
</Frame>

<Tip>Recomendamos ativar regras de proteção na branch principal para garantir que todas as verificações obrigatórias sejam aprovadas antes que o Devin possa mesclar alterações.</Tip>

<div id="using-devin-with-the-github-integration">
  ## Usando o Devin com a integração com o GitHub
</div>

<div id="for-core-and-teams-users">
  ### Para usuários do Core e do Teams
</div>

Assim que a integração estiver configurada, você poderá mencionar repositórios com @ diretamente nos seus prompts no aplicativo web do Devin.

<div id="for-enterprise-users">
  ### Para usuários Enterprise
</div>

Após configurar a integração, você pode delegar repositórios a organizações específicas em **Enterprise Settings** > **Repository Permissions**.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/Mjnq1XQhhDt7kgxn/images/enterprise/Enterprise-Add-Repositories.png?fit=max&auto=format&n=Mjnq1XQhhDt7kgxn&q=85&s=40569aced6bfea47b72b31a39865b89f" alt="Devin" width="2360" height="1322" data-path="images/enterprise/Enterprise-Add-Repositories.png" />
</Frame>

<Tip>
  Se você estiver trabalhando com um repositório pela primeira vez, recomendamos que conclua a [configuração do ambiente de desenvolvimento no fluxo de onboarding](/pt-BR/onboard-devin/environment) para garantir que o Devin tenha informações precisas e
  atualizadas sobre a sua base de código. O Devin responde automaticamente a comentários em PR enquanto a sessão não tiver sido arquivada.
</Tip>

<div id="managing-devins-permissions-in-github">
  ## Gerenciando as permissões do Devin no GitHub
</div>

Durante a configuração, você pode conceder ao Devin acesso a **todos os repositórios** da sua organização ou limitar o acesso a **repositórios específicos**.

Você pode ajustar o acesso a repositórios a qualquer momento nas configurações do GitHub:

1. Navegue até **Settings** > **GitHub Apps** da organização no GitHub (por exemplo, `https://github.com/organizations/<org_name>/settings/installations`)
2. Selecione **Configure** para a integração Devin.ai
3. Em **Repository access**, escolha conceder acesso a todos os repositórios ou selecione repositórios específicos
4. Clique em **Save** para aplicar as alterações

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Manage-Devin-Permissions.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=f926780257bb9628e26d634f4a15c18c" alt="Devin" width="1984" height="1542" data-path="images/integrations/GitHub-Manage-Devin-Permissions.png" />
</Frame>

O Devin requer as seguintes permissões:

Acesso de **leitura** a:

| Permissão                        | Descrição                                                                                                                           |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `dependabot alerts`              | Permite que o Devin resolva alertas do Dependabot em seu nome (ou seja, atualizando versões de dependências)                        |
| `actions`                        | Permite que o Devin visualize as actions configuradas para um repositório, a fim de entender se as alterações do Devin passam no CI |
| `deployments`                    | Permite que o Devin veja quais versões de um repositório foram implantadas                                                          |
| `metadata`                       | Permite que o Devin veja metadados cruciais sobre um repositório, como quem é o proprietário                                        |
| `packages`                       | Permite que o Devin veja quais versões de um repositório foram entregues como pacote                                                |
| `pages`                          | Permite que o Devin consulte páginas associadas a um repositório, por exemplo, para visualizar documentação                         |
| `repository security advisories` | Permite que o Devin veja avisos de segurança relacionados a um repositório para ajudar a corrigir problemas de segurança            |
| `members`                        | Permite que o Devin veja membros de uma organização                                                                                 |
| `webhooks`                       | Permite que o Devin veja os hooks configurados para um repositório, por exemplo, linting e verificação de tipos                     |

Acesso de **leitura** e **gravação** a:

| Permissão         | Descrição                                                                                                                                              |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `checks`          | Permite que o Devin visualize e informe resultados de checks para um repositório, a fim de entender e comunicar se as alterações do Devin passam no CI |
| `commit statuses` | Permite que o Devin visualize e defina commit statuses para indicar se um commit passa no CI                                                           |
| `contents`        | Permite que o Devin contribua com a base de código                                                                                                     |
| `discussions`     | Permite que o Devin contribua em discussions                                                                                                           |
| `issues`          | Permite que o Devin abra novos issues                                                                                                                  |
| `pull requests`   | Permite que o Devin crie novos PRs                                                                                                                     |
| `projects`        | Permite que o Devin visualize e gerencie projetos associados a um repositório, por exemplo, para recuperar informações sobre uma tarefa                |
| `workflows`       | Permite que o Devin configure novos workflows, por exemplo, para ajudar a configurar CI/CD                                                             |

Essas permissões permitem que o Devin trabalhe nos seus repositórios como um colaborador comum — fazendo push de branches, abrindo pull requests (PRs) e participando de discussões de PRs.

<div id="pull-request-templates">
  ## Modelos de Pull Request
</div>

Quando o Devin cria um pull request, ele usa um modelo do seu repositório para estruturar a descrição do PR. Se você fornecer um modelo, o Devin seguirá esse formato ao enviar PRs para o GitHub.

<div id="devin-specific-template-recommended">
  ### Modelo específico do Devin (recomendado)
</div>

Você pode fornecer ao Devin seu próprio modelo sem modificar seu modelo padrão voltado para pessoas, adicionando um arquivo chamado `devin_pr_template.md` em um dos locais compatíveis de `PULL_REQUEST_TEMPLATE` abaixo. Isso é útil se você quiser que o Devin inclua contexto adicional, como uma lista de verificação para revisores ou um diagrama Mermaid dos arquivos modificados.

<div id="template-search-order">
  ### Ordem de busca de templates
</div>

Devin procura templates na seguinte ordem e usa o primeiro que encontrar:

1. PULL\_REQUEST\_TEMPLATE/devin\_pr\_template.md
2. docs/PULL\_REQUEST\_TEMPLATE/devin\_pr\_template.md
3. .github/PULL\_REQUEST\_TEMPLATE/devin\_pr\_template.md
4. pull\_request\_template.md
5. docs/pull\_request\_template.md
6. .github/pull\_request\_template.md

Se nenhum template for encontrado, Devin usa seu formato padrão de descrição de PR.

<Tip>Se você quiser que o Devin use seu `pull_request_template.md` existente, copie-o ou crie um symlink para um dos caminhos `devin_pr_template.md` listados acima.</Tip>

<Info>Para saber mais sobre templates de pull request do GitHub (locais suportados, múltiplos templates, parâmetros de query, etc.), consulte a documentação do GitHub: <a href="https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-request-template-for-your-repository" target="_blank" rel="noopener noreferrer">Creating a pull request template for your repository</a>.</Info>

<div id="commit-signing">
  ### Assinatura de commits
</div>

Para assinar os commits do Devin com GPG, configure a chave no seu [ambiente](/pt-BR/onboard-devin/environment/blueprints) para que ela persista entre sessões. Gerar a chave no terminal de uma sessão não funciona — toda sessão do Devin é iniciada a partir de uma nova cópia da imagem da máquina, então qualquer chave criada durante a sessão é descartada quando ela termina.

<Warning>
  A assinatura GPG via configuração de ambiente só gera commits **Verified** quando
  o Devin é o *autor do commit*. O GitHub verifica assinaturas com base na
  identidade do autor, mas em qualquer modo de **Autoria de commit** em que o autor seja o
  usuário solicitante (por exemplo, "Com coautoria", "Somente usuário", "Usuário como autor, Devin como
  committer"), o Devin substitui `user.email` em cada sessão pelo
  email do próprio usuário — o que não corresponderá a uma única chave GPG compartilhada. Defina o modo de [Autoria de commit](https://app.devin.ai/settings/profile) da sua org como **"Somente Devin"** ou
  **"Devin como autor, usuário como committer"** antes de contar com essa configuração.
</Warning>

Configure isso na camada de **nível da organização** (ou na camada **Enterprise**, se todas as suas org precisarem disso) para que todo repo receba uma configuração de commits assinados:

1. Crie (ou escolha) uma conta de usuário dedicada no GitHub que será responsável tanto pela identidade do autor do commit *quanto* pelas credenciais usadas pelo Devin para fazer push — por exemplo, `devin@company.com`. Usar uma única conta para ambos simplifica a configuração da assinatura; usar duas divide entre elas a configuração descrita abaixo.
2. Gere uma chave GPG localmente com o email dessa conta como UID, seguindo as [instruções do GitHub](https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key).
3. Importe a chave **pública** para a conta do GitHub cujo email verificado corresponde ao UID do GPG, em [GitHub Settings > SSH and GPG keys](https://github.com/settings/keys). O GitHub verifica assinaturas com base na identidade do *autor do commit*, não na identidade que faz o push — a chave pública precisa estar na conta que é dona do email em `user.email`. (Se essa for a mesma conta dedicada usada para fazer push, você só precisa fazer isso uma vez.)
4. Exporte a chave **privada**, codifique-a em base64 e adicione-a (junto com os `GIT_USER_NAME` / `GIT_USER_EMAIL` correspondentes) como segredos em [Configurações → Secrets](https://app.devin.ai/settings/secrets).
5. Na sua [configuração de ambiente em nível da organização](https://app.devin.ai/settings/environment), importe a chave e ative a assinatura no início de cada sessão. Consulte o [exemplo de assinatura de commit com GPG](/pt-BR/onboard-devin/environment/templates#gpg-commit-signing) pronto para copiar e colar para ver o YAML completo.

<Tip>
  O email do committer (`user.email`) precisa corresponder a um UID na chave GPG, e esse
  mesmo email precisa ser um email verificado na conta do GitHub para a qual você importou
  a chave pública. Se qualquer um desses três não corresponder, o GitHub mostrará o commit
  como **Unverified** mesmo que a assinatura em si seja válida.
</Tip>

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

* **Proteção de branch:** Recomendamos ativar regras de proteção de branch na branch principal para garantir que todas as verificações necessárias sejam concluídas com sucesso antes que o Devin possa mesclar alterações.
* **Permissões em nível de organização:** O Devin usa as permissões concedidas em nível de organização, não as permissões do usuário que está executando a sessão.
* **Acesso consistente:** Todos os usuários com acesso tanto à organização no GitHub quanto à organização no Devin compartilham as mesmas permissões de integração do Devin.
* **Criação de repositório:** O Devin não pode criar novos repositórios na sua conta do GitHub.

<div id="ip-allowlisting">
  ## Lista de IPs permitidos
</div>

Se a sua organização exigir uma lista de IPs permitidos para acesso ao GitHub, adicione os seguintes endereços IP:

* 100.20.50.251
* 44.238.19.62
* 52.10.84.81
* 52.183.72.253
* 20.172.46.235
* 52.159.232.99
* 4.204.199.103
* 54.201.200.193
* 54.69.238.189
* 100.23.34.160

<Note>Esses endereços IP podem mudar em atualizações futuras. Recomendamos acompanhar nossas notas de versão para quaisquer alterações.</Note>

<div id="troubleshooting-github-organization-connected-to-the-wrong-devin-organization">
  ## Solução de problemas: organização do GitHub conectada à organização errada do Devin
</div>

Se a sua organização do GitHub já estiver conectada a uma organização do Devin à qual você não tem acesso, um administrador da organização no GitHub pode remover a instalação existente e reinstalá-la em outra organização do Devin.

<Warning>Recomendamos confirmar com o proprietário da organização atual do Devin antes de remover a instalação.</Warning>

1. Acesse [github.com/settings/installations](https://github.com/settings/installations) e clique em **Configure** ao lado de **Devin.ai Integration**.

   Se necessário, mude para o contexto correto da organização do GitHub usando o menu suspenso **Go to settings page** no canto superior direito.

   <Frame>
     <img src="https://mintcdn.com/cognitionai-enterprise/Q55SWovKajVuWOnW/images/integrations/GitHub-Settings-Switch-Context.png?fit=max&auto=format&n=Q55SWovKajVuWOnW&q=85&s=2d3a5deeb2792ed3461c5e8f20261ac4" alt="Alternar o contexto das configurações do GitHub" width="788" height="192" data-path="images/integrations/GitHub-Settings-Switch-Context.png" />
   </Frame>

2. Na página de instalação, role até a seção **Danger zone** e clique em **Uninstall** para remover a **Devin.ai Integration** da organização do GitHub.

   <Frame>
     <img src="https://mintcdn.com/cognitionai-enterprise/Q55SWovKajVuWOnW/images/integrations/GitHub-Uninstall-App.png?fit=max&auto=format&n=Q55SWovKajVuWOnW&q=85&s=6ed985bca3524ea7a574a95752f7cea7" alt="Desinstalar Devin.ai Integration" width="1095" height="839" data-path="images/integrations/GitHub-Uninstall-App.png" />
   </Frame>

3. Volte para [app.devin.ai](https://app.devin.ai) e atualize a página. Agora você pode reinstalar a integração do GitHub na sua organização do Devin.

<div id="github-integration-faqs">
  ## Perguntas frequentes sobre a integração com o GitHub
</div>

<AccordionGroup>
  <Accordion title="Posso conectar uma conta pessoal do GitHub à conta do Devin da minha organização?" icon="user">
    Sim, você pode conectar uma organização do GitHub ou uma conta pessoal do GitHub à sua organização no Devin. No entanto, recomendamos conectar a conta que tenha as permissões apropriadas para o Devin acessar os repositórios de que sua equipe precisa.
  </Accordion>

  <Accordion title="Como o app do GitHub lida com a autenticação de usuários?" icon="shield-halved">
    Somente usuários que são membros da organização que instalou a integração com o GitHub podem usá-la em suas sessões do Devin. O Devin herda o acesso à integração com o GitHub com base na associação do usuário à organização.
  </Accordion>

  <Accordion title="Como o Devin gerencia e rotaciona chaves de criptografia?" icon="binary">
    As chaves de criptografia são gerenciadas pelo AWS KMS e rotacionadas periodicamente.
  </Accordion>
</AccordionGroup>
