Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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. A Microsoft não está atualmente a aceitar utilizadores adicionais para a pré-visualização.
Funcionalidades podem mudar ou ser removidas sem aviso prévio. As funcionalidades de pré-visualização não têm Acordo de Nível de Serviço (SLA) e têm suporte limitado.
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.
Note
Os dados tratados pelo Copilot Autofix não são usados para treinar grandes modelos de linguagem (LLMs).
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.
Billing
O Copilot Autofix está incluído na sua licença GitHub Advanced Security for Azure DevOps. Gerar uma correção consome créditos de IA do contador de faturação 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 para o modelo, tokens de saída para a alteração sugerida e tokens em cache que reutilizam contexto existente.
Para simplificar a faturação, estes tokens são convertidos numa unidade padrão chamada crédito GitHub AI, onde 1 crédito equivale a $0,01 USD. As cobranças são faturadas para a subscrição do Azure associada à sua organização Azure DevOps e aparecem como um contador separado no Gestão de Custos do Azure.
O custo de cada correção varia consoante o tamanho do contexto de código circundante e a complexidade da alteração.
Para monitorizar as suas cobranças diárias, aceda a Subscrição>Gestão de Custos>Análise de custos no portal do Azure.
Ativar o Copilot Autofix
Pode ativar o Copilot Autofix ao nível da organização, projeto ou repositório. Quando ativas o Autofix num âmbito mais amplo, a definição aplica-se a todos os repositórios dentro desse âmbito. Escolha onde configurar o Autofix com base nos repositórios a que quer que a definição se aplique:
| Scope | Onde configurar o Autofix |
|---|---|
| Organization | Selecione Definições> daOrganização Repositórios para ativar o Autofix para todos os repositórios da organização. |
| Projeto | Selecione Definições do projeto>Repositórios>Todos os repositórios para ativar o Autofix para todos os repositórios no projeto. |
| Repositório | Selecione Definições> do ProjectRepositorios e depois selecione um repositório para ativar o Autofix apenas para esse repositório. |
Para ativar o Copilot Autofix:
- Entre na sua organização do Azure DevOps (
https://dev.azure.com/{yourorganization}). - Vai à página de definições do âmbito da organização, projeto ou repositório que queres configurar.
- Na secção de Segurança Avançada , abra o painel de funcionalidades de Segurança de Código .
- 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.
- Selecione Aplicar para guardar as alterações.
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.
- Selecione Repos>Segurança Avançada.
- Selecione o separador de leitura de códigos e depois selecione um alerta para abrir a sua vista de detalhes.
- Revise a Localização, Descrição e Recomendação do alerta para compreender a conclusão.
- Selecione Gerar correção.
Enquanto o Copilot Autofix processa a correção, a vista de detalhes do alerta mostra que a correção está em curso. O Copilot Autofix abre um pull request quando a correção está pronta.
O Copilot Autofix gera a correção e abre um pull request a partir de um ramo com o nome copilot-autofix/.... O pull request está identificado com uma tag Copilot Autofix, que pode usar para identificar os pull requests Autofix na lista de pull requests.
Para alertas do CodeQL, o pull request aparece automaticamente em Pull requests relacionados na vista de detalhes do alerta e continua a atualizar-se à medida que a geração e a conclusão progridem, pelo que não precisa de atualizar a página.
Se o Copilot Autofix não produzir alterações de código para o alerta, não cria um branch nem um pull request, nem liga um pull request na vista de detalhe do alerta. Neste caso, corrige o alerta manualmente. Para mais informações, veja A correção não está disponível.
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.
A etiqueta Autofix do Copilot identifica os pull requests autofix.
- Abra o pedido de pull na secção Pedidos de pull relacionados do alerta, ou em Repos>Pull requests.
- Revise a alteração proposta no separador Ficheiros em todos os ficheiros afetados.
- Edita a alteração se precisares de corresponder ao teu estilo de código, convenções de nomes ou requisitos do projeto.
- 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.
Resolução de problemas do Copilot Autofix
Foi gerada uma correção, mas não pôde ser consolidada nem enviada
O Copilot Autofix usa noreply@dev.azure.com como endereço de e-mail do autor do commit. Se uma política de validação do e-mail do autor do commit não permitir este endereço, o Copilot Autofix pode gerar a alteração ao código, mas não pode fazer commit nem fazer push para criar um pull request.
A vista de detalhes do alerta apresenta um erro que identifica o endereço de e-mail bloqueado do autor do commit.
Adicione noreply@dev.azure.com aos padrões de email permitidos na política de validação de emails do autor do commit:
- Selecione Configurações do projeto>Repositórios.
- Selecione Todos os Repositórios para atualizar a política ao nível do projeto, ou selecione o repositório que tenha essa política.
- Selecione Políticas.
- Em Políticas de Repositório, encontre a validação do email do autor do Committ.
- Adicione
noreply@dev.azure.comaos padrões de email permitidos. - Volte ao alerta de leitura de código e selecione Retentar corrigir.
Uma tentativa falha
Se uma corrida de Autofix do Copilot não conseguir ser concluída, o alerta mostra um estado de falha proeminente, por isso podes ver rapidamente que a corrida não teve sucesso. A partir do estado de falha, podes tentar novamente a execução para gerar uma nova correção.
Uma execução pode falhar por razões transitórias, ou quando a execução não produz uma alteração de código utilizável. Repetir a execução para gerar novamente a correção.
A solução não está 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 pode ser um falso positivo.
- Uma consulta personalizada ou uma ferramenta de terceiros, em vez do CodeQL, gera o alerta.
- O Copilot Autofix corre mas não produz alterações de código. Neste caso, não é criado nenhum branch ou pull request.
Se o Copilot Autofix determinar que o alerta pode ser um falso positivo e não produzir quaisquer alterações, a vista detalhada do alerta mostra o resultado. Pode rever a execução ou repetir a correção.
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.