O GitHub Copilot Autofix para alertas de code scanning visa reduzir o tempo gasto na triagem e correção de vulnerabilidades de segurança. O recurso usa IA para sugerir alterações de código que resolvem alertas específicos encontrados pelas ferramentas de code scanning do GitHub. Este artigo explica o que o Autofix faz, os pré-requisitos para habilitá-lo e as etapas práticas para configurá-lo no seu repositório. Também aborda as limitações atuais que você deve conhecer antes de usar o Autofix em fluxos de produção.
Principais Conclusões: GitHub Copilot Autofix para Alertas de Code Scanning
- Configurações do repositório GitHub > Code security & analysis > Copilot Autofix: Ative para receber sugestões de correção geradas por IA para alertas de code scanning detectados.
- Workflow do GitHub Actions com etapa de code scanning: Necessário para gerar os alertas que o Autofix pode então propor correções.
- Painel de revisão de pull requests: Onde você revisa, aceita ou rejeita cada sugestão do Autofix antes de mesclar a alteração.
Visão Geral do Recurso GitHub Copilot Autofix
O GitHub Copilot Autofix é um recurso que trabalha com os alertas de code scanning do GitHub. Quando um alerta de code scanning é gerado, o Autofix analisa o alerta e o contexto do código ao redor. Em seguida, gera uma alteração de código que tenta resolver a vulnerabilidade ou erro subjacente. A correção aparece como uma sugestão em um pull request que você pode revisar, modificar ou rejeitar antes de mesclar.
O recurso suporta alertas do CodeQL, ferramentas de análise de terceiros e configurações de setup padrão. O Autofix não envia alterações automaticamente para o branch padrão. Ele cria um pull request com a correção proposta, dando a você controle total sobre o processo de integração.
Pré-requisitos para Usar o Autofix
Antes de habilitar o Autofix, verifique os seguintes requisitos:
- Uma licença do GitHub Advanced Security atribuída à sua organização. O Autofix não está disponível nos planos gratuito ou Team.
- Code scanning já configurado e em execução no repositório. O Autofix só funciona em alertas existentes.
- Uma licença do Copilot for Business ou Copilot Enterprise atribuída à pessoa que revisará e aprovará os pull requests de correção.
- Visibilidade do repositório definida como pública ou interna. Repositórios privados exigem Advanced Security.
Passos para Habilitar e Configurar o GitHub Copilot Autofix
Siga estes passos para habilitar o Autofix para alertas de code scanning em um repositório GitHub.
- Navegue até as configurações de segurança do repositório
Abra seu repositório no GitHub. Clique na aba Settings. Na barra lateral esquerda, clique em Code security & analysis. - Localize o botão de alternância do Copilot Autofix
Role até a seção Copilot Autofix. Você verá um botão de alternância rotulado como Allow Copilot to create PRs with fixes for code scanning alerts. - Habilite o Autofix
Clique no botão de alternância para ativá-lo. Uma caixa de diálogo de confirmação aparecerá. Clique em Enable para confirmar. - Verifique se o code scanning está ativo
Vá para a aba Security do repositório. Clique em Code scanning na barra lateral esquerda. Certifique-se de que pelo menos um alerta exista. Se não houver alertas, o Autofix não terá nada para agir. - Revise um pull request do Autofix
Quando o Autofix gerar uma sugestão, ele criará um pull request intitulado Copilot Autofix: [descrição do alerta]. Abra o pull request. Revise o código alterado na aba Files changed. - Aceite ou modifique a correção
Você pode mesclar o pull request como está, editar o código manualmente ou fechar o pull request sem mesclar. O Autofix não mescla alterações automaticamente.
Configurando o Autofix para Múltiplos Repositórios
Para habilitar o Autofix em vários repositórios de uma vez, use a API do GitHub ou um script com o endpoint REST. O endpoint é PATCH /repos/{owner}/{repo}/code-scanning/autofix. Defina o parâmetro enabled como true. Este método é útil para organizações que gerenciam dezenas de repositórios.
Limitações e Pontos de Atenção
O Autofix tem várias restrições que afetam quando e como ele pode propor correções.
O Autofix Não Trata Todos os Tipos de Alertas
O Autofix funciona apenas com alertas que têm um padrão de correção claro. Por exemplo, ele trata injeção de SQL, cross-site scripting e credenciais codificadas em muitas linguagens. Ele não aborda problemas de nível de design, como falta de criptografia ou falhas arquiteturais. Se um tipo de alerta não for suportado, o Autofix não gerará um pull request.
A Qualidade da Correção Varia por Linguagem e Framework
A qualidade da correção gerada depende da linguagem e do framework em uso. JavaScript, TypeScript, Python e C# geralmente produzem sugestões utilizáveis. Linguagens com sintaxe menos comum ou frameworks mais antigos podem gerar correções incompletas ou incorretas. Sempre teste a correção antes de mesclar.
O Autofix Não Substitui a Revisão Manual
Todo pull request do Autofix requer revisão humana. A IA pode introduzir novos problemas de segurança ou quebrar funcionalidades existentes. Você deve executar sua suíte de testes no branch do pull request antes de mesclar. O Autofix é um auxílio de produtividade, não uma ferramenta de implantação automatizada.
O Autofix Não Está Disponível em Repositórios Forkados
Repositórios forkados não podem habilitar o Autofix. O recurso funciona apenas no repositório original onde o code scanning está configurado. Se você precisar corrigir alertas em um fork, deve aplicar a correção manualmente ou criar um pull request do fork para o repositório original.
O Autofix Pode Gerar Pull Requests Duplicados
Se vários alertas apontarem para o mesmo local de código, o Autofix pode criar pull requests separados para cada alerta. Isso pode poluir sua lista de pull requests. Para reduzir duplicatas, agrupe alertas relacionados e corrija-os em uma única alteração manual em vez de depender do Autofix para cada um.
GitHub Copilot Autofix vs Correção Manual de Code Scanning
| Item | Copilot Autofix | Correção Manual |
|---|---|---|
| Velocidade de geração da correção | Minutos após o alerta ser gerado | Horas a dias, dependendo da disponibilidade do desenvolvedor |
| Esforço humano necessário | Revisar e aprovar o pull request | Escrever, testar e revisar a alteração de código |
| Consciência de contexto | Limitada ao alerta e ao código ao redor | Compreensão completa do código e da lógica de negócio |
| Risco de introduzir novos bugs | Médio, requer testes completos | Baixo se o desenvolvedor seguir práticas padrão |
| Tipos de alertas suportados | Apenas padrões de vulnerabilidade comuns | Todos os tipos, incluindo falhas de design e lógica |
O GitHub Copilot Autofix acelera a criação inicial de correções para alertas de code scanning, mas não elimina a necessidade de julgamento humano. Habilite o Autofix em repositórios com alto volume de alertas para reduzir o tempo de triagem. Sempre execute seu pipeline de CI no branch do pull request gerado antes de mesclar. Para alertas de segurança críticos, considere complementar o Autofix com um processo de revisão manual de código para capturar casos extremos que a IA possa deixar passar.
}