Correção automática do Copilot para verificação de código (Versão prévia)

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. Para solicitar acesso à sua organização, inscreva-se para a visualização pública.

A funcionalidade pode ser alterada ou removida sem aviso prévio. Os recursos de visualização não têm SLA (Contrato de Nível de Serviço) e suporte limitado.

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.

Billing

O Copilot Autofix está incluído na sua licença do GitHub Advanced Security for Azure DevOps. A geração de uma correção consome créditos de IA do medidor de cobrança Azure da sua organização.

Cada geração de correção consome tokens, que incluem tokens de entrada para o contexto de código enviado ao modelo, tokens de saída para a alteração sugerida e tokens armazenados em cache que reutilizam o contexto existente.

Para manter a cobrança simples, esses tokens são convertidos em uma unidade padrão chamada GitHub crédito de IA, em que 1 crédito é igual a US$ 0,01. Os encargos são cobrados na assinatura Azure vinculada à sua organização Azure DevOps e aparecem como um medidor separado em Gerenciamento de Custos do Azure.

O custo de cada correção varia com o tamanho do contexto de código ao redor e a complexidade da alteração.

Para monitorar seus custos diários, acesse Assinatura>Gerenciamento de Custos>análise de custos no portal do Azure.

Habilitar Correção automática do 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 recursos de Segurança de Código com a caixa de seleção Correção automática para alertas de verificação 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 solicitação de pull na seção Solicitações de pull relacionadas do alerta ou em Repos>Solicitações de pull.
  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.