Copilot Autofix para análise de código

O Copilot Autofix é uma funcionalidade alimentada por IA do GitHub Advanced Security para Azure DevOps que gera sugestões de correções para alertas de análise de código. Quando o CodeQL identifica uma vulnerabilidade ou erro de programação, pode gerar uma correção para o alerta diretamente a partir do separador de Segurança Avançada. O Copilot Autofix usa o agente de codificação Copilot para produzir a correção e abre um pull request com a alteração proposta, para que possa rever, editar e fundir através do seu fluxo normal de pull request.

Note

Esta funcionalidade está em pré-visualização pública limitada. Nem todos os que se inscrevem na pré-visualização têm acesso.

Necessita de GitHub Advanced Security para Azure DevOps ou, se estiver a utilizar a experiência autónoma, ter o GitHub Code Security for Azure DevOps ativado, bem como o code scanning configurado para o repositório.

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

Pré-requisitos

Categoria Requirements
Permissões - Para visualizar um resumo de todos os alertas para um repositório: Colaborador permissões para o repositório.
- Para dispensar alertas em Segurança Avançada: permissões de administrador de projeto.
- Para gerir permissões em Segurança Avançada: Membro do grupo Administradores de Coleção de Projetos ou Segurança Avançada: gerir configurações permissões definidas como Permitir.

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

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

Sobre o Copilot Autofix

O Copilot Autofix combina o poder de análise do CodeQL com o grande modelo de linguagem que alimenta o agente de codificação do Copilot. Quando gera uma correção para um alerta de leitura de código suportado, o Copilot Autofix analisa o alerta e o código circundante, depois abre um pull request que contém:

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

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

Importante

As sugestões do Copilot Autofix são geradas por um modelo de IA e não garantem que sejam corretas, completas ou seguras. Revise sempre cuidadosamente o pull request, valide que resolve o alerta sem introduzir novos problemas e teste as alterações antes de as fundir.

Idiomas suportados

O Copilot Autofix suporta as mesmas linguagens que o CodeQL analisa para análise de código, incluindo C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby e Swift. Para a lista atual de linguagens suportadas por CodeQL, veja Suporte a linguagem e consultas.

Ativar o Copilot Autofix

Ativa o Copilot Autofix por repositório como parte das definições de Code Security.

  1. Entre na sua organização do Azure DevOps (https://dev.azure.com/{yourorganization}).
  2. Selecione Definições do projeto>Repositórios e depois selecione o repositório que pretende configurar.
  3. Na secção de Segurança Avançada , abra o painel de funcionalidades de Segurança de Código .
  4. Selecione a caixa de verificação Correção automática para alertas de análise de código para criar correções automáticas para alertas de análise de código, geradas pelo agente de programação Copilot.
  5. Selecione Aplicar para guardar as alterações.

Captura de ecrã do painel de funcionalidades de Code Security com a caixa de seleção Autofix para alertas de leitura de código destacada.

O CodeQL já deve estar a correr e a gerar alertas para o repositório. Para mais informações, consulte Configurar a varredura de código e Configurar GitHub Funcionalidades Avançadas de Segurança.

Gerar uma correção para um alerta

Depois de ativares o Copilot Autofix, podes gerar uma correção a partir de qualquer alerta de leitura de código suportado.

  1. Selecione Repos>Segurança Avançada.
  2. Selecione o separador de leitura de códigos e depois selecione um alerta para abrir a sua vista de detalhes.
  3. Revise a Localização, Descrição e Recomendação do alerta para compreender a conclusão.
  4. Selecione Gerar correção.

Captura de ecrã de uma vista detalhada de alerta de leitura de código com o botão Gerar correção no canto superior direito.

O Copilot Autofix gera a correção e abre um pull request a partir de um ramo com o nome copilot-autofix/.... Depois de a correção ser gerada, o pedido de pull aparece em Pedidos de pull relacionados na vista detalhada do alerta.

Reveja e integre a correção

O pull request que o Copilot Autofix abre comporta-se como qualquer outro pull request do Repositórios do Azure. A sua descrição resume o alerta que a correção aborda.

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

  1. Abra o pedido de pull na secção Pedidos de pull relacionados do alerta, ou em Repos>Pull requests.
  2. Revise a alteração proposta no separador Ficheiros em todos os ficheiros afetados.
  3. Edita a alteração se precisares de corresponder ao teu estilo de código, convenções de nomes ou requisitos do projeto.
  4. Aprove e complete o pedido de consulta através do seu fluxo de trabalho normal de revisão.

Após a fusão do pull request e a próxima execução de varredura de código concluída, o alerta fecha automaticamente se a correção remover a vulnerabilidade subjacente.

Dica

Uma correção gerada é um ponto de partida, não uma resposta final. Trata o pull request como qualquer outra alteração: revê-o, testa e pede revisores adicionais conforme necessário antes de fundires.

Quando não há solução disponível

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

  • O tipo de alerta não é atualmente suportado pelo Copilot Autofix.
  • Copilot determina que o alerta é um falso positivo.
  • Uma consulta personalizada ou uma ferramenta de terceiros, em vez do CodeQL, gera o alerta.

Quando uma solução não estiver disponível, use as secções de Recomendação e Exemplo do alerta para o corrigir ou descarte manualmente o alerta. Para obter mais informações, consulte Detalhes do alerta.