Skip to main content

Mantendo padrões de base de código em uma distribuição do GitHub Copilot

Mantenha o controle do código da sua empresa com conjuntos de regras, recursos de segurança e treinamento eficaz.

Quem pode usar esse recurso?

Enterprise owners

A maioria das empresas está ciente dos benefícios de produtividade que as ferramentas de codificação de IA podem trazer. No entanto, muitos temem que o uso inadequado em sua empresa, como prompts mal-intencionados ou desenvolvedores que aceitam sugestões de IA sem revisão, resulte no comprometimento dos padrões da base de código.

Você pode mitigar esses riscos configurando o ambiente do seu GitHub e a cultura de trabalho para governança eficaz. Um dos principais benefícios do GitHub Copilot é que ele é integrado à plataforma GitHub, que já contém uma variedade de recursos para governança de código de nível empresarial.

1. Exigir solicitações e revisões de pull

Os desenvolvedores e os maus atores nunca devem ser capazes de aplicar unilateralmente sugestões de IA ou trabalho de agente diretamente a bases de código confidenciais. Você deve exigir um pull request aprovado antes que os usuários possam mesclar código em repositórios de produção e outras ramificações importantes.

Para fazer isso, crie um conjunto de regras:

  1. Identifique organizações ou repositórios que contêm as bases de código que você deseja proteger e aplique uma propriedade personalizada a elas. Isso permitirá que você direcione facilmente esses recursos em um conjunto de regras. Confira Como gerenciar propriedades personalizadas para repositórios na sua organização ou Gerenciando propriedades personalizadas para organizações.

    Como alternativa, você pode adicionar esses recursos protegidos a um conjunto de regras manualmente ou direcioná-los com base em uma convenção de nomenclatura.

  2. Crie um conjunto de regras de branch para sua empresa. Consulte Impondo a governança de código na sua empresa com conjuntos de regras.

    • Habilite pelo menos as regras Exigir uma solicitação de pull antes de mesclar e Bloquear pushes forçados. Na regra "Exigir uma solicitação de pull", verifique se você precisa de pelo menos uma aprovação.
    • Habilite outras regras, se necessário. Por exemplo, se você estiver preocupado com agentes maliciosos que sequestram pull requests, verifique se você descarta aprovações obsoletas de pull request quando novos commits são enviados.
  3. Incentive os administradores de repositório a configurar arquivos CODEOWNERS para arquivos específicos em repositórios. Isso solicitará automaticamente uma revisão dos proprietários de código quando esses arquivos forem modificados.

    Em seguida, você pode voltar ao seu conjunto de regras e habilitar a regra Exigir revisão dos Code Owners.

  4. Incentive os proprietários da organização e os administradores de repositório a criar conjuntos de regras mais específicos, pois eles provavelmente terão mais reconhecimento dos requisitos para seu próprio código.

    Esses conjuntos de regras serão adicionados à linha de base que você define no nível empresarial, mas nunca o substituirão.

2. Testar seu código

Boas práticas de DevOps garantem que seu código seja testado automaticamente antes de ser mesclado e implantado, minimizando os riscos de erros entrarem em seus branches padrão e aparecerem em ambientes de produção.

  1. Habilite GitHub Actions ou outro sistema de CI/CD.
  2. Incentive os desenvolvedores a escrever testes para todos os recursos e integrar testes em fluxos de trabalho GitHub Actions .
  3. Incentive os proprietários de organização ou repositório a criarem conjuntos de regras e adicionarem fluxos de trabalho importantes à regra Exigir que fluxos de trabalho passem antes da mesclagem.

3. Verificar o código em busca de vulnerabilidades

Copilot foi projetado justamente para evitar a introdução de vulnerabilidades em sua base de código. Por exemplo, o código criado por agente de codificação Copilot é verificado automaticamente em busca de padrões e segredos vulneráveis, como chaves de API.

No entanto, é uma boa prática verificar regularmente todos os códigos em busca de vulnerabilidades e segredos e impedir que os desenvolvedores introduam vulnerabilidades em primeiro lugar.

  1. Como ponto de partida, aplique e imponha a configuração de segurança recomendada do GitHub nas suas organizações. Esta é uma coleção de configurações de habilitação para recursos de segurança, incluindo code scanning, secret scanninge proteção por push de segredos. Consulte Criando uma configuração de segurança personalizada.
  2. Conforme você aprender mais sobre suas necessidades, crie configurações personalizadas ou aplique configurações granulares no nível do repositório.
  3. Para impor code scanning em solicitações de pull, retorne ao conjunto de regras e habilite a regra Require code scanning results.

4. Criar diretrizes para Copilot

Em primeiro lugar, para melhorar a qualidade das sugestões de Copilot, você deve criar instruções personalizadas. Essas instruções adicionam contexto a todos os prompts que informam Copilot sobre como seguir os padrões de codificação da sua empresa.

  1. Para estabelecer uma boa linha de base, crie instruções personalizadas no nível da organização. Eles podem ser padrões de alto nível que provavelmente serão aplicados a qualquer repositório. No entanto, observe que essas instruções se aplicam somente ao site GitHub . Consulte Adicionando instruções personalizadas da organização para GitHub Copilot.
  2. Para uma cobertura mais completa, incentive desenvolvedores e administradores de repositório a escrever instruções personalizadas para repositórios específicos. Elas se aplicam em mais locais do que instruções da organização e podem entrar em mais detalhes sobre cada projeto e seus requisitos. Consulte Adicionando instruções personalizadas do repositório para GitHub Copilot.

5. Incentivar práticas recomendadas

Com os guardrails fortes em vigor, os desenvolvedores já devem estar habilitados para usar a IA efetivamente. No entanto, é importante fornecer treinamento sobre ferramentas de IA e criar uma cultura em que as práticas recomendadas sejam incentivadas, em vez de apenas impostas.

  1. Comunique as configurações de governança e as expectativas da sua empresa sobre como os desenvolvedores devem usar Copilot. Por exemplo, se todo o trabalho do agente deve ser analisado minuciosamente, verifique se esse processo foi estabelecido e comunicado.
  2. Crie recursos de integração, como documentação interna ou vídeos. Para um ponto de partida, compartilhe recursos existentes como Práticas recomendadas para usar GitHub Copilot e Livro de Receitas do GitHub Copilot Chat.
  3. Ofereça treinamento e suporte contínuos, como workshops. Em implementações bem-sucedidas, muitas empresas identificam "campeões" que podem treinar outras pessoas sobre como usar Copilot efetivamente.

6. Planeje o pior

Mesmo com os guardrails mais estritos em vigor, é sempre possível que o código vulnerável ou propenso a erros seja mesclado, independentemente de seus desenvolvedores estarem usando ferramentas de IA.

Para se preparar para esses cenários, você deve planejar como resolverá os problemas e comunicará esse plano com os desenvolvedores. Por exemplo:

  1. Reverta uma solicitação de pull incorreta e reverta uma implantação.
  2. Crie uma postagem de discussão analisando o que deu errado e como evitá-lo no futuro.
  3. Verifique os logs de auditoria para elementos como desvios de regras, permissões incorretas ou alterações nas configurações de governança.

7. Verificar a qualidade do código

Se você estiver confiante em seu modelo de governança, mas ainda estiver preocupado que Copilot reduzirá a qualidade da base de código ao longo do tempo, você poderá medir isso ao longo de uma implementação. Se habilitado, GitHub Code Quality fornece métricas sobre a integridade do código de seus repositórios. Consulte Sobre a Qualidade do Código no GitHub.

Próximas Etapas 

Entenda como sua empresa pode usar o log de auditoria para monitorar as alterações nas configurações e na atribuição de licença. Consulte Revisão de logs de auditoria para GitHub Copilot Business.