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 na empresa, como solicitações maliciosas ou desenvolvedores que aceitam sugestões da IA sem revisão, possa comprometer os padrões de sua 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 de pull e avaliações

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. É recomendável exigir uma solicitação de pull aprovada antes que os usuários possam integrar o código nas bases de código de produção e em 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 ramificação para a sua empresa. Consulte Impondo a governança de código na sua empresa com conjuntos de regras.

    • Ative, no mínimo, as regras Exigir uma solicitação de pull antes de mesclar e Bloquear envios forçados. De acordo com a regra “Exigir uma solicitação de pull”, certifique-se de exigir pelo menos uma aprovação.
    • Habilite outras regras, se necessário. Por exemplo, se você estiver preocupado com a possibilidade de pessoas mal-intencionadas se apropriarem indevidamente de pull requests, certifique-se de rejeitar aprovações de pull requests desatualizadas quando novos commits forem 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 escreverem testes para todos os recursos e a integrarem esses testes nos 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 é automaticamente analisado em busca de padrões vulneráveis e informações confidenciais, 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 ativação para recursos de segurança, incluindo code scanning, secret scanning e a proteção contra envio 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

Para melhorar a qualidade das sugestões do Copilot, em primeiro lugar, você deve criar instruções personalizadas. Essas instruções fornecem contexto a todas as solicitações, indicando que Copilot deve 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 suas 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 “líderes” capazes de treinar outras pessoas sobre como usar Copilot de forma eficaz.

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. Reverter uma solicitação de pull incorreta e reverter 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ê confia no seu modelo de governança, mas ainda assim teme que Copilot possa prejudicar a qualidade do seu código ao longo do tempo, é possível avaliar isso durante a implementação. Se ativada, a variável GitHub Code Quality fornece métricas sobre a integridade do código dos 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.