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

# Varreduras de Código do Devin

> Use as Varreduras de Código do Devin para encontrar problemas de desempenho, cobertura de testes, código morto, acessibilidade e outros nos seus repositórios e corrigi-los com Devin

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](/pt-BR/work-with-devin/security-swarm). Esta página trata dos demais tipos de varredura.

<Accordion title="Pré-requisitos">
  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](/pt-BR/work-with-devin/security-swarm#access-and-permissions).
  * Sua organização precisa ter acesso ao repositório que você deseja varrer.
</Accordion>

<div id="start-a-scan-with-scan">
  ## Inicie uma varredura com `/scan`
</div>

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](#scan-types) correspondente. Objetivos mais restritos ou diferentes, como encontrar vazamentos de memória, usam uma varredura **Custom** focada no que você descreveu.

<video autoPlay muted loop playsInline className="w-full aspect-video" src="https://mintcdn.com/cognitionai/C44xaWXfrf74E4c0/images/work-with-devin/code-scans/code-scans-walkthrough.mp4?fit=max&auto=format&n=C44xaWXfrf74E4c0&q=85&s=8c69208be93267cd470d3591447f3c5f" data-path="images/work-with-devin/code-scans/code-scans-walkthrough.mp4" />

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.

<Note>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](/pt-BR/work-with-devin/security-swarm#interactive-mode).</Note>

<div id="scan-types">
  ## Tipos de varredura
</div>

| Tipo de varredura    | O que ela procura                                                                                                                                                                |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Performance**      | Problemas de desempenho e oportunidades de tornar seu código mais rápido e eficiente.                                                                                            |
| **Database queries** | Problemas nos pontos em que seu código consulta seus armazenamentos de dados: consultas ineficientes, incorretas, inseguras ou não confiáveis.                                   |
| **Test coverage**    | Fluxos e componentes que não estão cobertos por testes.                                                                                                                          |
| **Dead code**        | Código que ninguém mais alcança: funções, módulos, flags e dependências sem uso que podem ser removidos com segurança.                                                           |
| **Code quality**     | Problemas de manutenibilidade que dificultam ler, alterar e manter o código correto.                                                                                             |
| **Cleanup**          | Código bagunçado, redundante e superelaborado que pode ser limpo sem alterar o comportamento.                                                                                    |
| **Telemetry**        | Pontos que precisam de instrumentação de telemetria ou rastreamento.                                                                                                             |
| **Accessibility**    | Código de frontend que não atende às diretrizes de acessibilidade (WCAG), como rótulos ausentes, acesso por teclado quebrado e baixo contraste.                                  |
| **Compliance**       | Lacunas em relação às regulamentações, padrões e políticas que a varredura está configurada para verificar, como tratamento de dados sensíveis, trilhas de auditoria e retenção. |
| **Migration docs**   | Rastreia os fluxos de ponta a ponta e a lógica de negócio do seu código e gera documentação pronta para migração, com diagramas.                                                 |
| **Custom**           | Qualquer outra coisa que você descrever, como pontos que registram dados pessoais ou uma convenção de nomenclatura que sua equipe queira aplicar.                                |

Para vulnerabilidades e superfícies de ataque, use uma varredura do [Security Swarm](/pt-BR/work-with-devin/security-swarm).

<div id="review-and-fix-findings">
  ## Revisar e corrigir resultados
</div>

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

<div id="scale-scanning">
  ## Varredura em escala
</div>

<div id="scan-new-commits">
  ### Varrer novos commits
</div>

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.

<div id="automations">
  ### Automações
</div>

As [automações](/pt-BR/product-guides/automations) 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](/pt-BR/work-with-devin/security-swarm#scan-profiles) 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](/pt-BR/work-with-devin/security-swarm#start-scans-from-automations).

<div id="api">
  ### API
</div>

A [API de varredura de código](/pt-BR/api-reference/v3/code-scans/triggering-code-scans) 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.

<div id="related-pages">
  ## Páginas relacionadas
</div>

* [Security Swarm](/pt-BR/work-with-devin/security-swarm) — varreduras de segurança, scan profiles, modo interativo e permissões de varreduras de código.
* [Acionando varredura de código pela API do Devin](/pt-BR/api-reference/v3/code-scans/triggering-code-scans) — o fluxo completo da API.
* [Automações](/pt-BR/product-guides/automations) — agende e acione varreduras.
