Skip to main content
Uma varredura de código é uma sessão do Devin, junto com as child sessions que ela inicia, que lê um ou mais repositórios, reporta resultados e pode corrigi-los por meio de pull requests. As varreduras de segurança são abordadas em Security Swarm. Esta página trata dos demais tipos de varredura.
Para executar uma varredura:
  • Você precisa da permissão Usar varreduras de código e da permissão para usar sessões do Devin. Consulte Acesso e permissões.
  • Sua organização precisa ter acesso ao repositório que você deseja varrer.

Inicie uma varredura com /scan

  1. No compositor, digite /scan seguido do que você quer encontrar e mencione os repositórios a serem varridos. Por exemplo: /scan find N+1 queries in @acme/api. Os repositórios que você selecionou no compositor também são incluídos.
  2. Envie a mensagem. O Devin inicia uma nova sessão para configurar a varredura e a abre. Se você enviar apenas /scan, o Devin sugere exemplos de varreduras, como encontrar consultas lentas ao banco de dados ou código não utilizado, e pergunta o que você quer encontrar.
  3. O Devin escolhe o tipo de varredura a partir da sua requisição e informa isso em uma linha — por exemplo, que vai configurar uma varredura personalizada que procura apenas nomes de variáveis em camelCase. Responda se quiser algo diferente.
  4. O Devin exibe um cartão Code scan setup. Confirme os Repositories a varrer e, se quiser, adicione orientações em What should the scan focus on?. Se você não mencionar nenhum repositório, o Devin pré-seleciona aquele em que você mais trabalhou, com base nos seus pull requests recentes.
  5. Clique em Start scan. O Devin só cria a varredura depois que você envia o cartão e, então, compartilha um link para a sessão da varredura. Para cancelar a configuração, clique em Dismiss.
Você não precisa escolher um tipo de varredura nem configurá-la por conta própria. Requisições que abrangem uma área inteira, como uma varredura de desempenho de um repositório, usam o tipo de varredura correspondente. Objetivos mais restritos ou diferentes, como encontrar vazamentos de memória, usam uma varredura Custom focada no que você descreveu. Quando uma varredura que não é de segurança termina, o Devin envia a você uma mensagem direta no Slack resumindo os resultados, a menos que você tenha pedido outro tipo de notificação ou nenhuma. As mensagens no Slack exigem que a integração do Slack da sua organização permita que sessões enviem mensagens diretas.
Varreduras que não são de segurança são executadas sem supervisão com esforço normal. As opções de esforço e o modo interativo, em que o Devin faz uma pausa para você revisar um modelo de ameaças antes de investigar, estão disponíveis apenas para varreduras de segurança.

Tipos de varredura

Para vulnerabilidades e superfícies de ataque, use uma varredura do Security Swarm.

Revisar e corrigir resultados

Abra a aba Resultados na sessão que iniciou a varredura, ou na sessão principal da varredura, para tratar os resultados. Os resultados em aberto são agrupados por estágio:
  • Unassigned — nenhuma sessão de remediação foi iniciada.
  • Assigned — uma sessão de remediação foi iniciada, mas não há PR aberto.
  • PR open — há um PR aberto para o resultado.
Para cada resultado, você pode:
  • Assign to Devin — iniciar uma sessão do Devin que corrige o resultado e abre um PR. Use Open session para acompanhar o trabalho e Open PR para revisar o resultado.
  • Dismiss — remover um resultado que não exige ação.
Enquanto uma varredura está em execução, a aba Resultados na sessão principal da varredura também oferece Pause scan, Resume scan e Kill scan. Esses controles exigem a permissão Gerenciar varreduras de código.

Varredura em escala

Varrer novos commits

Depois que uma varredura de qualquer tipo é concluída, clique em Varrer novos commits na aba Resultados para iniciar uma execução incremental que analisa apenas os commits adicionados desde a última execução concluída da varredura. A execução usa a configuração existente da varredura e adiciona seus resultados a essa mesma varredura. O botão não aparece enquanto a varredura está em andamento nem depois que ela é arquivada, e exige a permissão Gerenciar varreduras de código. Se não houver commits novos, nenhuma execução é iniciada. Você também pode pedir ao Devin, em uma sessão, que varra os novos commits de uma varredura existente.

Automações

As automações podem executar varreduras de qualquer tipo de forma agendada ou em resposta a um evento. Escolha o tipo de agente Code scan e, em Scan:
  • Escolha Create a new scan para iniciar uma varredura do zero a cada disparo da automação. Selecione os repositórios, o tipo de varredura e o profile. Tipos de varredura que não sejam de segurança exigem um scan profile do mesmo tipo.
  • Escolha uma varredura existente para analisar seus novos commits a cada disparo da automação. A varredura já deve ter uma execução concluída.
As varreduras iniciadas por automações são executadas sem supervisão. Consulte Iniciar varreduras a partir de automações.

API

A API de varredura de código inicia varreduras, consulta seu andamento e lê os resultados sem precisar do web app. Ao iniciar uma varredura que não seja de segurança pela API, você deve informar um profile_id de um profile daquele tipo de varredura; o scan_type assume por padrão o tipo do profile. Varreduras iniciadas pela API não são interativas.