Compartilhar via


Obter feedback com solicitações de pull

As solicitações pull oferecem suporte à revisão e mesclagem de código em um único processo colaborativo. Depois que um desenvolvedor adiciona um recurso ou uma correção de bug, ele cria uma solicitação pull para iniciar o processo de mesclagem das alterações no branch upstream. Outros membros da equipe têm a chance de revisar e aprovar o código antes que ele seja finalizado. Use solicitações de pull para examinar os trabalhos em andamento e obter comentários antecipados em relação às alterações. Mas não há compromisso de mesclar as mudanças. Um proprietário pode abandonar uma solicitação pull a qualquer momento.

Obter código revisado

A revisão de código feita como parte de uma solicitação pull não serve apenas para encontrar bugs óbvios. Essa é a tarefa dos testes. Uma boa revisão de código encontra problemas menos óbvios que podem ocasionar problemas dispendiosos posteriormente.

As revisões de código ajudam a proteger a equipe de mesclagens ruins e builds corrompidos que minam a produtividade da equipe. As revisões detectam problemas antes da mesclagem, protegendo branches importantes de alterações indesejadas.

As revisões de código também incentivam e fortalecem a colaboração e a comunicação entre os desenvolvedores. E a equipe ganha um histórico claro de todas as alterações feitas entre o branch principal e os branches de recursos.

Dissemine a experiência e distribua estratégias de solução de problemas usando uma ampla variedade de revisores nas revisões de código. A difusão de habilidades e conhecimento torna a equipe mais forte e resiliente.

Fornecer ótimos comentários

As revisões de alta qualidade começam com comentários de alta qualidade. Os fundamentos dos comentários excelentes em uma solicitação de pull são:

  • Fazer com que as pessoas certas revisem a solicitação de pull.
  • Certificar-se de que os revisores saibam o que o código faz.
  • Fornecer comentários úteis e construtivos.
  • Responda aos comentários em tempo hábil.

Ao atribuir revisores a uma solicitação pull, selecione o conjunto certo de revisores. Os revisores devem saber como o código funciona, mas também incluir desenvolvedores que trabalham em outras áreas para que possam compartilhar suas ideias.

Forneça uma descrição clara das alterações e uma compilação do código que tenha a correção ou o recurso funcionando nela. Os revisores devem fornecer comentários sobre as alterações com as quais não concordam. Identifique o problema e dê sugestões específicas sobre o que poderia ser feito de forma diferente. O comentário deve ter uma intenção clara e ser fácil para o proprietário da solicitação de pull entender.

O proprietário da solicitação pull deve responder aos comentários, aceitar sugestões ou explicar por que eles se recusam a aplicá-las. Algumas sugestões são boas, mas podem estar fora do escopo da solicitação pull. Pegue essas sugestões e crie novos itens de trabalho e branches de recursos separados da solicitação de pull para fazer essas alterações.

Proteger branches com políticas

Existem alguns branches críticos em um repositório que as equipes sabem que têm boa integridade, como o branch main. As equipes podem exigir solicitações pull para fazer alterações nesses branches com plataformas como GitHub e Azure DevOps. Os desenvolvedores que efetuam push de alterações diretamente nesses branches terão os pushes rejeitados.

Adicione mais condições às suas solicitações pull para impor um nível mais alto de qualidade de código aos principais branches. Um build limpo do código mesclado e a aprovação de vários revisores são alguns requisitos adicionais que você pode empregar para proteger seus principais branches.

Saiba mais

O GitHub tem uma extensa documentação sobre como propor alterações no seu trabalho com solicitações pull.

Leia mais sobre como fornecer ótimos comentários em revisões de código e como usar modelos de solicitação pull para fornecer orientação aos revisores. O Azure DevOps também oferece uma experiência avançada de solicitação pull que é fácil de usar e dimensionada conforme necessário.