Copilot Autofix para verificação de código

Copilot Autofix é um recurso com tecnologia de IA do GitHub Advanced Security para Azure DevOps que gera correções sugeridas para alertas de verificação de código. Quando o CodeQL identifica uma vulnerabilidade ou erro de codificação, você pode gerar uma correção para o alerta diretamente da guia Segurança Avançada. Copilot Autofixo usa o agente de codificação Copilot para produzir a correção e abre uma solicitação pull com a alteração proposta, para que você possa revisá-la, editá-la e mesclá-la por meio do fluxo de trabalho normal de solicitação de pull.

Note

Esse recurso está em versão prévia pública limitada. Nem todos que se inscrevem para a visualização recebem acesso.

Você precisa do GitHub Advanced Security for Azure DevOps ou, se estiver usando a experiência independente, ter o GitHub Code Security for Azure DevOps habilitado, além da verificação de código configurada para o seu repositório.

GitHub Advanced Security for Azure DevOps funciona com Azure Repos. Para usar a Segurança Avançada do GitHub com repositórios do GitHub, consulte a Segurança Avançada do GitHub.

Pré-requisitos

Categoria Requirements
Permissões – Para exibir um resumo de todos os alertas de um repositório: permissões de colaborador para o repositório.
– Para ignorar alertas na Segurança Avançada: permissões de administrador do projeto.
– Para gerenciar permissões em Segurança Avançada: Membro do grupo Administradores de Coleção de Projetos ou Segurança Avançada: gerenciar a permissão de configurações definida como Permitir.

Para obter mais informações sobre permissões de Segurança Avançada, consulte Gerenciar permissões de Segurança Avançada.

  • Verificação de código configurada para seu repositório, usando configuração padrão ou configuração avançada.
  • Pelo menos um alerta de análise de código do CodeQL.

Sobre Copilot Autofixo

Copilot Autofix combina o poder de análise do CodeQL com o grande modelo de linguagem que impulsiona o agente de programação do Copilot. Quando você gera uma correção para um alerta de análise de código com suporte, o Copilot Autofix analisa o alerta e o código ao redor e, em seguida, abre um pull request que contém:

  • Uma alteração de código sugerida que aborda a vulnerabilidade subjacente.
  • Uma descrição do alerta que está sendo corrigido, incluindo a ID do alerta, a gravidade e um resumo da alteração.

Como a correção sugerida considera o contexto mais amplo da base de código, a alteração pode abranger mais do que a única linha em que o alerta foi gerado e pode incluir alterações em outros arquivos quando necessário.

Importante

As sugestões de correção automática do Copilot são geradas por um modelo de IA, e não há garantia de que estejam corretas, completas ou seguras. Sempre examine a solicitação de pull com cuidado, valide se ela resolve o alerta sem introduzir novos problemas e teste suas alterações antes de mesclá-las.

Idiomas com suporte

Copilot Autofixo dá suporte aos mesmos idiomas que o CodeQL analisa para verificação de código, incluindo C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby e Swift. Para obter a lista atual de idiomas compatíveis com CodeQL, consulte o suporte a idiomas e consultas.

Habilitar o autofixo de Copilot

Habilite o Copilot Autofix para cada repositório como parte das configurações de segurança do código.

  1. Entre na sua organização do Azure DevOps (https://dev.azure.com/{yourorganization}).
  2. Selecione Configurações do projeto>Repositórios e, depois, selecione o repositório que você deseja configurar.
  3. Na seção Segurança Avançada , abra o painel de recursos de Segurança de Código .
  4. Selecione a caixa de seleção Autofix para alertas de verificação de código para criar correções automáticas para alertas de verificação de código, gerados pelo agente de codificação Copilot.
  5. Selecione Aplicar para salvar as alterações.

Captura de tela do painel de funcionalidades de Segurança de código com a caixa de seleção Correção automática para alertas de análise de código realçada.

O CodeQL já deve estar em execução e gerando alertas para o repositório. Para obter mais informações, consulte Configurar a verificação de código e Configurar os recursos do GitHub Advanced Security.

Gerar uma solução para um alerta

Depois de ativar o Copilot Autofix, você pode gerar uma correção a partir de qualquer alerta de verificação de código compatível.

  1. Selecione Repos>Advanced Security.
  2. Selecione a guia Verificação de código e selecione um alerta para abrir sua exibição de detalhes.
  3. Examine a Localização, Descrição e Recomendação do alerta para entender a constatação.
  4. Selecione Gerar correção.

Captura de tela de uma exibição de detalhes de alerta de verificação de código com o botão Gerar correção no canto superior direito.

Copilot Autofix gera a correção e abre um pull request a partir de uma ramificação chamada copilot-autofix/.... Depois que a correção é gerada, a solicitação de pull aparece em solicitações de pull relacionadas no modo de exibição de detalhes do alerta.

Revisar e mesclar a correção

A pull request que o Copilot Autofix abre se comporta como qualquer outra pull request do Azure Repos. Sua descrição resume o alerta que a correção aborda.

Captura de tela de um pull request criado pelo Copilot Autofix, mostrando o ID do alerta, a gravidade e os detalhes da correção na descrição.

  1. Abra a pull request na seção Pull requests relacionadas do alerta ou em Repos>Pull requests.
  2. Examine a alteração proposta na guia Arquivos em todos os arquivos afetados.
  3. Edite a alteração se precisar corresponder ao seu estilo de código, convenções de nomenclatura ou requisitos de projeto.
  4. Aprove e conclua a solicitação de pull por meio do fluxo de trabalho de revisão normal.

Depois que a solicitação de pull se mescla e a próxima execução de verificação de código for concluída, o alerta será fechado automaticamente se a correção remover a vulnerabilidade subjacente.

Dica

Uma correção gerada é um ponto de partida, não uma resposta final. Trate a solicitação de pull como qualquer outra alteração: examine-a, teste-a e solicite revisores adicionais conforme necessário antes de mesclar.

Quando uma correção não está disponível

O Copilot Autofix não consegue gerar uma correção para todos os alertas. Uma correção pode não estar disponível quando:

  • O tipo de alerta não é compatível com o Copilot Autofix no momento.
  • Copilot determina que o alerta é um falso positivo.
  • Uma consulta personalizada ou uma ferramenta de terceiros, em vez de CodeQL, gera o alerta.

Quando uma correção não estiver disponível, use as seções Recomendação e Exemplo do alerta para corrigi-lo ou ignorar o alerta manualmente. Para mais informações, consulte os Detalhes de alerta.