chore(23): governança de repositório — sem push/merge autônomo + prot… - #14
Merged
Conversation
…eção de segredos (ADR-0023) Endurece a governança para trabalho em equipe de longo prazo (pedido do dono). Trava do agente (.claude/settings.json — corrige a ref pendente do CLAUDE.md L104): - allow: git push (feature branch) + gh pr create → abre PR para develop ao terminar/testar a fatia (fim normal da fatia); - ask: git tag (só a pedido explícito do dono); - deny: git merge, gh pr merge, gh release create/delete, force-push. main/develop mudam só via PR revisado (branch protection documentada — o dono aplica no GitHub). Varredura de segredos (o repo não tinha nenhuma; CodeQL é só SAST): - .github/workflows/gitleaks.yml (job bloqueante, push/PR, histórico completo); - .pre-commit-config.yaml (hook gitleaks local, opcional); - .gitleaks.toml (allowlist ENUMERADA dos dev-defaults: dev12345, dev-*-secret, a chave dev base64 do AesGcmSecretCipher, acme/admin) — segredo real novo ainda falha (application.yml não é path-allowlisted). Higiene de arquivos sensíveis: - .gitignore: .env.* (com !.env.example / !.env.prod.example) + *.pem/*.key/ *.p12/*.jks/*.keystore/... + secrets/ + id_rsa*; - .dockerignore (backend/frontend): .env/segredos/.git. Governança de equipe: .github/CODEOWNERS, SECURITY.md (disclosure privado + política de segredos), CONTRIBUTING.md (fluxo PR + regra do agente), .github/PULL_REQUEST_TEMPLATE.md. Propagação das regras nos docs de processo: CLAUDE.md (invariante 9 + Routing Map + nota das permissões), docs/RUN-PHASE.md (§Git reescrito — supersede a autonomia de push/merge), delivery.md (branch protection + linha gitleaks no CI), workflow.md, TUTORIAL.md, architecture/security.md, ADR-0015 (adendo: tag via release PR), README pt/en, PRODUCTION-CHECKLIST, docs/README (hub + contagens 23 ADRs/152 DLs), ROADMAP-STATUS (header + log). ADR-0023 + DL-0152. Verificação local: JSON válido; .gitignore confere (exemplos rastreados, segredos ignorados); links dos .md resolvem; paths do CODEOWNERS existem. gitleaks/TOML/ YAML têm validação autoritativa no CI (não instalados localmente). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
O check Gitleaks do PR #14 falhou por configuração da action (não por segredo — o run do evento push passou limpo): a gitleaks-action@v2 lê o range de commits do PR via API e exige o GITHUB_TOKEN. Adicionado o token padrão (contents: read basta). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…de cada teste) Falha do CI (verde no Windows local, vermelha no runner Linux do GitHub, desde a Fase 20b): breakerOpens...:151 esperava 0 snapshots mas via 1. A asserção 148 (não bateu no portal) passava, provando que o crawler curto-circuitou correto — o snapshot fantasma era RESÍDUO no Postgres singleton COMPARTILHADO por todas as classes de integração (AbstractPostgresIntegrationTest). A limpeza só rodava em @AfterEach, deixando a PRIMEIRA asserção exposta a resíduo de outra classe. Fix: @beforeeach além do @AfterEach — cada teste começa com point_snapshots/ point_crawl_runs limpos, imune a resíduo. Não mascara bug de produto (o comportamento do breaker é provado pela asserção 148). Repro em container Linux: 627 testes verdes, PointClockCrawler 5/5. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
…eção de segredos (ADR-0023)
Endurece a governança para trabalho em equipe de longo prazo (pedido do dono).
Trava do agente (.claude/settings.json — corrige a ref pendente do CLAUDE.md L104):
Varredura de segredos (o repo não tinha nenhuma; CodeQL é só SAST):
Higiene de arquivos sensíveis:
Governança de equipe: .github/CODEOWNERS, SECURITY.md (disclosure privado + política de segredos), CONTRIBUTING.md (fluxo PR + regra do agente), .github/PULL_REQUEST_TEMPLATE.md.
Propagação das regras nos docs de processo: CLAUDE.md (invariante 9 + Routing Map + nota das permissões), docs/RUN-PHASE.md (§Git reescrito — supersede a autonomia de push/merge), delivery.md (branch protection + linha gitleaks no CI), workflow.md, TUTORIAL.md, architecture/security.md, ADR-0015 (adendo: tag via release PR), README pt/en, PRODUCTION-CHECKLIST, docs/README (hub + contagens 23 ADRs/152 DLs), ROADMAP-STATUS (header + log). ADR-0023 + DL-0152.
Verificação local: JSON válido; .gitignore confere (exemplos rastreados, segredos ignorados); links dos .md resolvem; paths do CODEOWNERS existem. gitleaks/TOML/ YAML têm validação autoritativa no CI (não instalados localmente).