Este documento descreve a estratégia de branches e revisão adotada no projeto CodeRats. O objetivo é manter entregas pequenas, rastreáveis e fáceis de revisar, sem perder velocidade de evolução.
- main: Branch de produção. Contém sempre a versão estável do sistema.
- develop: Branch de integração. Aqui são mescladas as features prontas antes de ir para o main.
- feature/*: Branches de funcionalidades. Cada nova feature ou bug fix possui uma branch derivada da develop, nomeada conforme
feature/nome-da-feature. - hotfix/*: Branches rápidas para correção de problemas críticos em produção, derivadas de main.
- Criar branch a partir de develop:
feature/nome-da-feature. - Implementar a funcionalidade, realizando commits frequentes e descritivos.
- Abrir Pull Request (PR) para develop, descrevendo as alterações e objetivos da feature.
- Revisão do PR por outro integrante (ou Tech Lead), verificando consistência de código, padrões de arquitetura e testes.
- Após aprovação, merge para develop.
- Testes de integração automatizados executados via GitHub Actions.
- Quando a develop estiver estável e pronta para release, merge em main.
- Deploy automatizado através do pipeline CI/CD.
- Commits pequenos e atômicos.
- Mensagens de commit descritivas e no padrão:
tipo: descrição(ex.:feat: adicionar autenticação OAuth GitHub). - Revisão obrigatória de PRs para garantir qualidade e padronização.
- Uso de labels para categorizar PRs (
feature,bugfix,hotfix). - Atualizar develop antes de iniciar uma nova branch de feature para evitar conflitos.
- Testes automatizados devem ser incluídos sempre que possível.
- Cada PR dispara execução de testes via GitHub Actions.
- Build automatizado do container para validação da integração.
- Após merge em main, deploy automático em ambiente de produção.
| Papel | Responsabilidade |
|---|---|
| Desenvolvedor | Criar branch, commits frequentes, abrir PR, corrigir feedbacks. |
| Tech Lead | Revisar PRs críticos, aprovar merges para develop/main. |
| DevOps | Configurar e manter pipelines de CI/CD e deploy. |
A adoção do GitHub Flow assegura entregas contínuas, qualidade de código e colaboração eficiente em equipe, mesmo em contexto acadêmico. Este fluxo pode ser adaptado e escalado conforme o projeto evolui para releases mais complexas.