Skip to content

docs(repo): adicionar template padrão de pull request - #239

Merged
Benevanio merged 3 commits into
Cla-Code-Community:developfrom
Jovinull:feature/pav-131-template-pull-request
Sep 7, 2026
Merged

Benevanio merged 3 commits into
Cla-Code-Community:developfrom
Jovinull:feature/pav-131-template-pull-request

Conversation

@Jovinull

Copy link
Copy Markdown
Contributor

Card

Objetivo e escopo

  • Padronizar o contexto mínimo das Pull Requests abertas no repositório.
  • Pré-preencher as seções exigidas no guia de contribuição.

O que foi feito

  • Adiciona .github/pull_request_template.md.
  • Inclui card, objetivo e escopo, alterações, módulos afetados, validação, riscos, evidências e checklist.
  • Referencia contribuition.md para as regras completas.

Módulos afetados

  • .github/pull_request_template.md

Validação

  • git diff --check executado sem erros de whitespace.
  • npm run validate executado no pre-push: 60 arquivos e 570 testes de backend aprovados; lint do frontend concluído sem erros; build do frontend concluído com sucesso.
  • Conferência do template contra os requisitos de PR definidos em contribuition.md.

Riscos e rollback

  • Sem alteração de código de aplicação, CI ou hooks.
  • Para reverter, basta remover o arquivo de template.

Evidências

  • O GitHub carrega automaticamente .github/pull_request_template.md ao criar uma nova Pull Request.

hltav and others added 2 commits August 23, 2026 18:32
…ode-Community#230)

## Linear

Issue: PAV-119

Closes PAV-119

## Branch flow

- [ ] Este PR é uma feature/fix/chore destinada a `develop`.
- [x] Este é um PR de release com origem `develop` e destino `master`.
- [x] Este PR não pula o fluxo obrigatório entre `develop` e `master`.

## Objetivo

Promover para `master` a implementação do lock distribuído do scraper,
garantindo no máximo uma execução ativa do pipeline entre diferentes
origens de disparo.

## Resumo das Alterações

- Implementa lock distribuído no Valkey compartilhado por cron, execução
manual administrativa e cache miss de `/scrape`.
- Utiliza aquisição atômica com `SET NX PX`, TTL e renovação periódica.
- Protege renovação e liberação por ownership/token.
- Implementa comportamento fail-closed quando o Valkey não confirma a
aquisição.
- Cancela a execução de forma segura em caso de perda do lock.
- Adiciona estado operacional com `runId`, origem, início e expiração
sem expor o token proprietário.
- Adiciona contratos HTTP para execução concorrente e indisponibilidade
do run lock.
- Alinha os defaults de `SCRAPER_RUN_LOCK_TTL` e
`SCRAPER_RUN_LOCK_RENEW_INTERVAL` à semântica fail-fast definida
anteriormente.
- Adiciona cobertura de testes para concorrência, ownership,
configuração, renovação, liberação e cenários de falha.
- Atualiza documentação e configuração do Docker Compose.

## Arquivos e Módulos Afetados

- Scraper Go
- Run lock / Valkey
- Scheduler e pipeline do scraper
- Backend administrativo
- Configuração do scraper
- Docker Compose
- Testes Go e backend
- Documentação operacional

## Validação

- [x] Implementação revisada contra o escopo da PAV-119.
- [x] Ajustes solicitados no code review aplicados.
- [x] Semântica fail-fast das configurações do run lock validada.
- [x] Nenhuma alteração de frontend incluída no escopo.
- [ ] CI final do PR de release validado.

## Observações

Este PR promove alterações já integradas e revisadas em `develop`.

Não realizar squash ou alterações adicionais diretamente em `master`
fora do fluxo de release.

@hltav hltav left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A proposta do PR está correta e o template automático faz sentido como melhoria de DX, mas vamos aproveitar esta PAV para consolidar um padrão mais completo para o Candidate.

O contribuition.md já define o conteúdo mínimo esperado das Pull Requests, então o template deve funcionar como um guardrail operacional de qualidade, e não apenas como uma reprodução resumida do guia.

Estou disponibilizando uma versão revisada do pull_request_template.md com seções adicionais para fluxo de branch, validações, impacto em banco/migrations, contratos/API, configuração/infraestrutura, segurança, dados pessoais, dependências, evidências, riscos e rollback.

Por favor, substitua o conteúdo atual pelo template revisado e valide se ele continua sendo carregado corretamente pelo GitHub ao abrir uma nova PR.

Depois dessa adequação, o PR fica pronto para nova revisão.

@Jovinull

Copy link
Copy Markdown
Contributor Author

Template revisado aplicado conforme solicitado no review.

O .github/pull_request_template.md agora inclui fluxo de branch, objetivo e escopo, como testar, validações, impacto em banco/migrations, contratos/API, configuração/infraestrutura, segurança, privacidade, dependências, evidências, riscos, rollback e checklist final.

Commit: fe083dc docs(repo): aplicar template revisado de pull request

Também validei o arquivo com git diff --check.

@Benevanio
Benevanio merged commit c127b3b into Cla-Code-Community:develop Sep 7, 2026
1 check passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in JobAtlas – Kanban Sep 7, 2026
Benevanio added a commit that referenced this pull request Sep 28, 2026
…rd (#253)

## Release

Promoção da branch `develop` para `master`, consolidando 26 commits e 49
arquivos alterados.

## Objetivo

Disponibilizar em produção as entregas recentes de segurança,
versionamento da API, notas privadas por candidatura, melhorias no
dashboard e ajustes de confiabilidade/documentação.

## Escopo

Inclui as entregas das PRs `#234`, `#239`, `#242`, `#245`, `#246`,
`#250` e `#252`.

### API e documentação

- Adicionado o prefixo versionado `/api/v1` para os endpoints da API.
- Mantidas temporariamente as rotas sem prefixo para compatibilidade com
clientes existentes.
- Expandida a documentação OpenAPI/Swagger com schemas, respostas,
exemplos e endpoints principais.
- Atualizado o README com a estratégia de versionamento da API.

### Segurança

- Aplicado rate limit ao `POST /auth/register`, por IP e por e-mail.
- Endurecido o fallback de CORS em produção, sem permitir `localhost`
quando `CORS_ALLOWED_ORIGINS` não estiver configurada.
- Adicionado HSTS para tráfego HTTPS/produção.
- Aplicada CSP restritiva na API, frontend, painel administrativo, Nginx
e Vercel.
- Removido script inline de bootstrap do tema para compatibilidade com
CSP.
- Reforçada a renderização segura de descrições de vagas, bloqueando
atributos ativos, `iframe` e protocolos não permitidos.

### Candidaturas e dashboard

- Adicionado suporte a múltiplas notas privadas por candidatura.
- Criada a tabela `application_notes`, com migration, índices e remoção
em cascata.
- Disponibilizados endpoints autenticados para listar, criar, editar e
remover notas de vagas salvas.
- Garantido isolamento por usuário e ownership da vaga em todas as
operações de notas.
- Reorganizado o detalhe da candidatura com tiles para local,
modalidade, nível, fonte, salário e match.
- Removida a duplicação entre os dados principais e o bloco de detalhes
adicionais.
- Mantida compatibilidade com o campo legado de nota única para vagas
não rastreadas.

### Autenticação e confiabilidade

- Corrigidos tipos e fallbacks no envio de e-mail de boas-vindas.
- Validado `provider` como valor escalar antes da desconexão de contas
OAuth.
- Ajustado o timeout de teste de inicialização do servidor sob execução
completa da suíte.

### Documentação e fluxo de contribuição

- Adicionado template padrão de Pull Request.
- Atualizados `README.md`, `BACKEND.md` e `SECURITY.md`.
- Documentadas variáveis de ambiente de CORS e rate limiting.
- Registradas especificação, validação e handoff da PAV-92.

## Impacto de banco / migration

- [x] Altera schema e migrations.

Inclui a migration `0014_hard_korath`, que cria `application_notes` e
seus índices/foreign keys. A migration deve ser aplicada antes da
disponibilização do backend em produção.

## Impacto em contratos/API

- [x] Altera endpoint e comportamento de API.

A API passa a expor os endpoints em `/api/v1`. As rotas legadas sem
prefixo permanecem disponíveis temporariamente para evitar quebra
imediata de clientes.

Também foram adicionados endpoints de notas privadas em:

- `GET /saved-jobs/:id/notes`
- `POST /saved-jobs/:id/notes`
- `PATCH /saved-jobs/:id/notes/:noteId`
- `DELETE /saved-jobs/:id/notes/:noteId`

## Impacto de configuração / infraestrutura

- [x] Altera configuração de segurança.

A produção deve revisar:

- `CORS_ALLOWED_ORIGINS`
- `AUTH_RATE_LIMIT_IP_MAX`
- `AUTH_RATE_LIMIT_ACCOUNT_MAX`
- `AUTH_RATE_LIMIT_WINDOW_SECONDS`
- Headers CSP configurados em Nginx e Vercel

## Validação

As PRs de origem possuem cobertura automatizada para:

- Versionamento `/api/v1` e contrato Swagger.
- Rate limiting, CORS e HSTS.
- CSP e sanitização de conteúdo externo.
- CRUD e isolamento de notas privadas.
- Detalhe de candidatura e regressões de interface.
- Tipagem de autenticação e desconexão de provedores.

Também foram executados testes, lint e builds de backend/frontend nos
fluxos de origem.

## Riscos

- A aplicação de `0014_hard_korath` é obrigatória antes do deploy do
backend.
- Clientes devem migrar gradualmente para `/api/v1`; as rotas legadas
continuam disponíveis nesta etapa.
- CSP e CORS restritivos podem bloquear integrações externas não
declaradas.
- A PR está divergente de `master`; sincronizar a base com os dois
commits pendentes e revalidar os checks antes do merge.

## Rollback

O rollback pode ser realizado revertendo o merge da release.

Caso a migration já tenha sido aplicada, a reversão do código deve
preservar a tabela `application_notes` até que exista uma migration
reversa planejada, evitando perda de notas já criadas.

## Checklist final

- [x] Consolida entregas de `develop` para `master`.
- [x] Inclui alterações de API, banco, segurança, frontend e
documentação.
- [x] Mantém compatibilidade temporária com rotas legadas.
- [x] Possui migrations a serem aplicadas antes do deploy.
- [x] Sincronizar `develop` com os commits pendentes de `master`.
- [ ] Confirmar todos os checks da PR antes do merge.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants