Pular para o conteúdo principal

Por que integrar o Devin com o GitHub?

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 > 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.
Usando GitHub Enterprise Server? Veja o guia de integração com GitHub Enterprise Server para instruções de configuração usando personal access tokens.

Configurando a integração

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.
  1. Na sua conta no Devin em app.devin.ai, vá até Settings > Integrations > GitHub e clique em Add Connection.
Devin
  1. Se você ainda não estiver logado no GitHub, será solicitado que se autentique.
Devin
  1. Selecione a organização do GitHub que você quer conectar ao Devin.
Devin
  1. Escolha se deseja conceder ao Devin acesso a All repositories ou Select repositories para controlar quais repositórios o Devin poderá acessar.
Devin
  1. 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.
Devin
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.

Usando o Devin com a integração com o GitHub

Para usuários do Core e do Teams

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

Para usuários Enterprise

Após configurar a integração, você pode delegar repositórios a organizações específicas em Enterprise Settings > Repository Permissions.
Devin
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 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.

Gerenciando as permissões do Devin no GitHub

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
Devin
O Devin requer as seguintes permissões: Acesso de leitura a:
PermissãoDescrição
dependabot alertsPermite que o Devin resolva alertas do Dependabot em seu nome (ou seja, atualizando versões de dependências)
actionsPermite que o Devin visualize as actions configuradas para um repositório, a fim de entender se as alterações do Devin passam no CI
deploymentsPermite que o Devin veja quais versões de um repositório foram implantadas
metadataPermite que o Devin veja metadados cruciais sobre um repositório, como quem é o proprietário
packagesPermite que o Devin veja quais versões de um repositório foram entregues como pacote
pagesPermite que o Devin consulte páginas associadas a um repositório, por exemplo, para visualizar documentação
repository security advisoriesPermite que o Devin veja avisos de segurança relacionados a um repositório para ajudar a corrigir problemas de segurança
membersPermite que o Devin veja membros de uma organização
webhooksPermite 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ãoDescrição
checksPermite 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 statusesPermite que o Devin visualize e defina commit statuses para indicar se um commit passa no CI
contentsPermite que o Devin contribua com a base de código
discussionsPermite que o Devin contribua em discussions
issuesPermite que o Devin abra novos issues
pull requestsPermite que o Devin crie novos PRs
projectsPermite que o Devin visualize e gerencie projetos associados a um repositório, por exemplo, para recuperar informações sobre uma tarefa
workflowsPermite 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.

Modelos de Pull Request

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

Ordem de busca de templates

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.
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.
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: Creating a pull request template for your repository.

Assinatura de commits

Para assinar os commits do Devin com GPG, configure a chave no seu ambiente 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.
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 da sua org como “Somente Devin” ou “Devin como autor, usuário como committer” antes de contar com essa configuração.
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.
  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. 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.
  5. Na sua configuração de ambiente em nível da organização, importe a chave e ative a assinatura no início de cada sessão. Consulte o exemplo de assinatura de commit com GPG pronto para copiar e colar para ver o YAML completo.
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.

Considerações de segurança

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

Lista de IPs permitidos

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
Esses endereços IP podem mudar em atualizações futuras. Recomendamos acompanhar nossas notas de versão para quaisquer alterações.

Solução de problemas: organização do GitHub conectada à organização errada do Devin

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.
Recomendamos confirmar com o proprietário da organização atual do Devin antes de remover a instalação.
  1. Acesse 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.
    Alternar o contexto das configurações do GitHub
  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.
    Desinstalar Devin.ai Integration
  3. Volte para app.devin.ai e atualize a página. Agora você pode reinstalar a integração do GitHub na sua organização do Devin.

Perguntas frequentes sobre a integração com o GitHub

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.
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.
As chaves de criptografia são gerenciadas pelo AWS KMS e rotacionadas periodicamente.