Guia do Primeiro PR¶
Como fazer sua primeira contribuição ao projeto DestaquesGovbr.
Antes de Começar¶
Certifique-se de que você:
- [ ] Completou o setup do ambiente (Backend ou Frontend)
- [ ] Consegue rodar a aplicação localmente
- [ ] Tem acesso de escrita ao repositório (ou pode fazer fork)
1. Encontrar uma Issue¶
Onde procurar¶
Labels para iniciantes¶
Procure issues com as labels:
| Label | Significado |
|---|---|
good first issue |
Ideal para primeira contribuição |
help wanted |
Contribuições bem-vindas |
documentation |
Melhorias de documentação |
bug |
Correção de bugs |
Se não encontrar uma issue¶
- Pergunte ao tech lead sobre tarefas disponíveis
- Identifique melhorias na documentação
- Reporte um bug que você encontrou
2. Criar Branch¶
Convenção de nomes¶
# Features
git checkout -b feature/descricao-curta
# Bug fixes
git checkout -b fix/descricao-do-bug
# Documentação
git checkout -b docs/descricao
# Refatoração
git checkout -b refactor/descricao
Exemplos¶
git checkout -b feature/adicionar-filtro-data
git checkout -b fix/corrigir-parsing-ebc
git checkout -b docs/atualizar-readme
3. Fazer Alterações¶
Boas práticas¶
- Commits pequenos: Faça commits frequentes e focados
- Uma coisa por vez: Cada PR deve resolver uma issue específica
- Testes: Adicione/atualize testes quando aplicável
- Documentação: Atualize docs se necessário
Padrões de código¶
Backend (Python)¶
# Formatação
poetry run black src/
# Linting
poetry run ruff check src/
# Verificar antes de commitar
poetry run pytest
Frontend (TypeScript)¶
# Formatação e lint
pnpm lint:fix
# Verificar tipos
pnpm type-check
# Verificar antes de commitar
pnpm build
4. Commits¶
Convenção de mensagens¶
Usamos Conventional Commits:
<tipo>(<escopo>): <descrição>
[corpo opcional]
[rodapé opcional]
Tipos comuns¶
| Tipo | Uso |
|---|---|
feat |
Nova funcionalidade |
fix |
Correção de bug |
docs |
Documentação |
style |
Formatação (não altera código) |
refactor |
Refatoração |
test |
Testes |
chore |
Manutenção |
Exemplos¶
# Feature
git commit -m "feat(scraper): adicionar suporte a paginação infinita"
# Bug fix
git commit -m "fix(portal): corrigir filtro de data no mobile"
# Documentação
git commit -m "docs: atualizar guia de contribuição"
# Refatoração
git commit -m "refactor(api): extrair lógica de busca para hook"
5. Push e Pull Request¶
Fazer push¶
# Primeiro push da branch
git push -u origin feature/sua-feature
# Pushes subsequentes
git push
Criar PR no GitHub¶
- Acesse o repositório no GitHub
- Clique em "Compare & pull request"
- Preencha o template
Template de PR¶
## Descrição
Breve descrição do que foi feito.
## Tipo de mudança
- [ ] Bug fix
- [ ] Nova feature
- [ ] Breaking change
- [ ] Documentação
## Issue relacionada
Fixes #123
## Como testar
1. Passo 1
2. Passo 2
3. Resultado esperado
## Checklist
- [ ] Código segue os padrões do projeto
- [ ] Testes adicionados/atualizados
- [ ] Documentação atualizada
- [ ] Build local passou
6. Code Review¶
O que esperar¶
- Feedback em 1-2 dias úteis
- Sugestões de melhorias
- Perguntas sobre decisões técnicas
- Aprovação ou pedido de mudanças
Responder ao feedback¶
# Fazer alterações solicitadas
git add .
git commit -m "fix: aplicar sugestões do code review"
git push
Dicas para um bom review¶
- Seja receptivo ao feedback
- Pergunte se algo não estiver claro
- Explique suas decisões técnicas
- Agradeça o tempo do revisor
7. Merge¶
Após aprovação:
- Squash and merge (padrão): Combina todos os commits em um
- O PR será mergeado pelo revisor ou por você
- A branch pode ser deletada após o merge
Fluxo Visual¶
flowchart TD
A[1. Encontrar Issue] --> B[2. Criar Branch]
B --> C[3. Fazer Alterações]
C --> D[4. Commit]
D --> E{Mais alterações?}
E -->|Sim| C
E -->|Não| F[5. Push]
F --> G[6. Criar PR]
G --> H[7. Code Review]
H --> I{Aprovado?}
I -->|Não| C
I -->|Sim| J[8. Merge]
J --> K[🎉 Contribuição Completa!]
Checklist do Primeiro PR¶
- [ ] Branch criada com nome apropriado
- [ ] Código segue padrões do projeto
- [ ] Testes passando localmente
- [ ] Lint/formatação executados
- [ ] Commits com mensagens claras
- [ ] PR criado com descrição completa
- [ ] Issue linkada no PR
Exemplos de Primeiro PR¶
Backend: Adicionar novo órgão¶
- Editar
src/scraper/site_urls.yaml - Editar
src/scraper/agencies.yaml - Testar scraping do novo órgão
- Criar PR
Frontend: Corrigir estilo de componente¶
- Identificar componente com problema
- Ajustar CSS/Tailwind
- Testar em diferentes resoluções
- Criar PR
Documentação: Melhorar README¶
- Identificar seção desatualizada
- Atualizar conteúdo
- Revisar ortografia
- Criar PR
Dúvidas Frequentes¶
Posso trabalhar em mais de uma issue por vez?¶
Sim, mas mantenha branches separadas para cada issue.
Quanto tempo leva para um PR ser revisado?¶
Normalmente 1-2 dias úteis. Se demorar mais, pergunte no canal do projeto.
O que fazer se meu PR tiver conflitos?¶
# Atualizar main local
git checkout main
git pull
# Voltar para sua branch e fazer rebase
git checkout sua-branch
git rebase main
# Resolver conflitos se necessário
# Depois fazer force push
git push --force-with-lease
Posso commitar direto na main?¶
Não. Todo código deve passar por PR e code review.
Próximos Passos¶
Após seu primeiro PR:
- Celebre! 🎉
- Procure issues mais desafiadoras
- Ajude a revisar PRs de outros
- Contribua com a documentação
→ Veja Troubleshooting para problemas comuns