Bem-vindo! Este guia explica como contribuir com o projeto IterBot.
Usamos GitHub Flow para o gerenciamento de branches:
| Prefixo | Propósito | Exemplo |
|---|---|---|
feature/ |
Novas funcionalidades | feature/login-oauth |
fix/ |
Correções de bugs | fix/erro-timeout-api |
release/ |
Preparação de release (opcional) | release/v1.1 |
hotfix/ |
Correções urgentes em produção (opcional) | hotfix/erro-ssl-certificado |
- Apenas minúsculas — todas as palavras em caixa baixa
- Hífens como separadores — use
-, não_nem espaços - Sem números de issue — mantenha nomes descritivos e limpos
- Descrições curtas — idealmente com menos de 50 caracteres
- Sem caracteres especiais — apenas letras, números, hífens e
/
# Bom
feature/adicionar-filtro-vagas
fix/corrigir-timeout-api
hotfix/erro-ssl-certificado
# Ruim
feature/Feature_Login_OAuth # Maiúsculas e underscores
fix/bugfix # Genérico demais
feature/123 # Só números
feature/login oauth # Espaços-
Crie a branch a partir do master:
git checkout master && git pull git checkout -b feature/minha-feature -
Desenvolva e commite usando Conventional Commits:
git add . && git commit -m "feat: adiciona feature X"
-
Faça push e abra o PR:
git push -u origin feature/minha-feature # Abra o PR no GitHub -
O CI roda automaticamente:
Lint— ruff check + ruff formatTest— pytest com 70% de coberturaSecurity— pip-audit + trivy
-
Revisão:
- Exige 1 aprovação de qualquer membro do projeto
- GitHub Copilot Code Review (se disponível)
-
Merge:
- PR aprovado + CI verde → merge no master
- Estratégia: Squash merge (um commit por feature)
A branch master é protegida com as seguintes regras:
- ✅ Pull request obrigatório — pushes diretos são proibidos
- ✅ 1 aprovação obrigatória — pelo menos um revisor precisa aprovar
- ✅ Aprovações antigas são descartadas — novos commits revogam aprovações anteriores
- ✅ Status checks obrigatórios — Lint, Test e Security precisam passar
- ✅ Histórico linear — sem commits de merge
Usamos squash merge por padrão:
- Todos os commits da branch de feature são combinados em um único commit no master
- Mantém o histórico do master limpo e linear
- Cada feature/fix = um commit
Para habilitar no GitHub:
- Vá em Settings → General → Pull Requests
- Habilite Allow squash merging
- Opcionalmente marque Default to squash merging
- Siga os padrões de código existentes no projeto
- Rode
ruff checkeruff formatantes de commitar - Use Conventional Commits nas mensagens:
feat:,fix:,docs:etc.
Abra uma issue ou inicie uma discussão no GitHub.