Pull Requests e Colaboração
Aula 9 de 12
O que é um Pull Request?
Pull Request (PR) / Merge Request é uma proposta de alteração. Permite revisar código antes de integrá-lo ao branch principal.
Fluxo Básico com GitHub
1. Criar branch → 2. Commits → 3. Push → 4. Abrir PR → 5. Revisão → 6. Merge
Passo a Passo
# 1. Criar branch para a funcionalidade
git switch -c feat/nova-funcionalidade
# 2. Commits atômicos
git add .
git commit -m "feat: adiciona funcionalidade X"
# 3. Enviar para o remoto
git push -u origin feat/nova-funcionalidade
Boas Práticas para PRs
Tamanho
- PRs pequenos e focados são mais fáceis de revisar
- Ideal: 1 PR = 1 funcionalidade ou correção
- Máximo recomendado: ~300 linhas alteradas
Título e Descrição
## O que muda?
Implementa autenticação JWT com refresh token.
## Tipo de mudança
- [ ] Bug fix
- [x] Nova feature
- [ ] Refactor
- [ ] Documentação
## Como testar?
1. Faça POST /auth/login com {email, senha}
2. Receba access + refresh token
3. Use refresh token para renovar access
## Checklist
- [x] Testes unitários
- [x] Testes de integração
- [x] Documentação atualizada
Revisão de Código
O que avaliar em um PR:
- Lógica: está correta? Cobre edge cases?
- Legibilidade: o código é claro? Precisa de comentários?
- Segurança: há vulnerabilidades potenciais?
- Performance: há gargalos?
- Testes: cobre os cenários principais?
Code Review Etiqueta
Para o autor:
- Responda a comentários com educação
- Explique decisões técnicas quando questionado
- Mantenha o PR atualizado com a main
- Não force push depois de reviews iniciados
Para o revisor:
- Seja construtivo, não crítico
- Pergunte "o que você acha de...?" em vez de "está errado"
- Separe opinião pessoal de padrão objetivo
- Aprove rapidamente PRs pequenos e óbvios
Tipos de Merge no GitHub
| Opção | Efeito | Quando usar |
|---|---|---|
| Create merge commit | Commit de merge (--no-ff) | Padrão, preserva histórico |
| Squash and merge | Todos os commits viram um | PRs com commits bagunçados |
| Rebase and merge | Rebase + fast-forward | Histórico linear |
Um bom PR conta uma história: título claro, descrição completa, commits organizados.