Skip to content

feat(ci): o que ficou de fora do #408 — fase 5, varredura pós-release e preview sem token - #422

Merged
rubenmarcus merged 2 commits into
mainfrom
ci/resto-da-pilha
Aug 22, 2026
Merged

feat(ci): o que ficou de fora do #408 — fase 5, varredura pós-release e preview sem token#422
rubenmarcus merged 2 commits into
mainfrom
ci/resto-da-pilha

Conversation

@rubenmarcus

Copy link
Copy Markdown
Member

O #408 mergeou o estado de antes dos últimos commits. Três coisas ficaram de fora, e são justamente as que fazem o sistema trabalhar sozinho:

1. Fase 5 — resolução automática de conflito (era o #414)

O #414 mergeou numa branch que já tinha subido, então virou órfão. Sem ele o autofix conserta doc mas não resolve conflito, que é 86% do trabalho.

2. Varredura pós-release

O autofix só acordava quando o PR se mexia. Quem desatualiza PR é a main andando — 9 releases em 20 horas, cada um reabrindo conflito em todo PR aberto. Agora push: [main] dispara uma varredura que lista os PRs desatualizados e conserta cada um.

Sem isso o bot nunca toca em quem está parado esperando revisão — que é exatamente quem precisa.

3. Preview de fork sem aprovação e sem expor o token

Duas metades: preview-build.yml compila o código do fork em pull_request (que num fork roda sem secrets), e preview-deploy.yml publica em workflow_run sem executar nada do PR (--prebuilt só envia arquivo).

Quem tem o que roubar não roda código de terceiro; quem roda código de terceiro não tem o que roubar. Zero clique, inclusive para estranho.

Antes disso eu tinha feito o caminho errado — autoaprovar o rótulo — e a régua de segurança já proibia exatamente isso; escapei dela por escrever --add-label sem as aspas que ela casava. Revertido, e a cláusula agora casa as duas formas.

Validação

  • npm run check:deploy — 35/35
  • workflow_security_check --selftest — 9/9 mutações vermelhas
  • eval:autofix — 7 mutantes mordendo (AF1–AF6)
  • eval:portaointeiro — 97 citações, nenhum passo órfão

Risk

  • low - docs/tooling/text only
  • medium
  • high

Só CI. Nenhum arquivo do jogo.

🤖 Generated with Claude Code

@vercel

vercel Bot commented Aug 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
csbrasil Ready Ready Preview Aug 22, 2026 3:51am

Request Review

@csbrasil-BOT csbrasil-BOT added the target:main PR apontando para a branch main label Aug 22, 2026
@csbrasil-BOT

csbrasil-BOT commented Aug 22, 2026

Copy link
Copy Markdown
Collaborator

csbrasil-bot classification

Note

@rubenmarcus abriu 9 arquivo(s) · +467 −88, base main.

O que mudou

área arquivos + amostra
🤖 CI 6 +406 −65 autofix.yml, preview-bot.yml, preview-build.yml
🧪 arnês 2 +51 −18 autofix-check.mjs, deploy-gate-check.mjs
📚 docs 1 +10 −5 PROD-READINESS.md

Labels

label por quê
target:main vai direto pra main, sem fila de integração

Comment thread .github/workflows/preview-deploy.yml Fixed
@estraga-codigo

Copy link
Copy Markdown
Collaborator

Esbirro

Esbirro · plantão da produção · 🕵️

check vermelho parado neste PR

Caution

Não sei classificar este vermelho. Segue o que o CI cuspiu — palpite de bot sobre bug alheio só atrapalha.

o quê valor
head b9f434964e09
checks vermelhos 2
classe outra
hora do plantão 2026-08-22T03:09:32.325Z

Vermelho:

classify (https://github.com/corosolto/client/actions/runs/32548088935/job/96970103949)
CodeQL (https://github.com/corosolto/client/runs/96970091161)

Log do run já expirou — abrir pelo link do check.


de plantão: vi, registrei, hora no relógio 🕵️

@estraga-codigo estraga-codigo 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.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • CI (5): autofix.yml, preview-bot.yml, preview-build.yml, preview-deploy.yml
  • docs (2): colaborar.md, colaborar.md
  • outros (1): medir-chars.mjs

Tip

Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓

limpo pelos critérios das minhas ações desta rodada

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.


maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡

…xposto

Três peças que ficaram de fora do #408 - ele mergeou o estado anterior aos últimos
commits - reunidas num commit só, em cima da main.

1. FASE 5, resolução automática de conflito. Sem ela o autofix regenera doc mas
   não resolve conflito, que é 86% do trabalho (57 de 66 arquivos num dia).

2. VARREDURA PÓS-RELEASE. O autofix só acordava quando o PR se mexia, e quem
   desatualiza PR é a MAIN andando: 9 releases em 20 horas, cada um reabrindo
   conflito em todo PR aberto. Agora `push: [main]` dispara uma varredura que
   lista os desatualizados e conserta cada um. Sem isso o bot nunca toca em quem
   está parado esperando revisão - que é justamente quem precisa.

3. PREVIEW DE FORK sem aprovação E sem expor o token, em duas metades:
   preview-build.yml compila o código do fork em `pull_request` (que num fork roda
   SEM secrets) e preview-deploy.yml publica em `workflow_run` sem executar nada do
   PR (`--prebuilt` só envia arquivo). Quem tem o que roubar não roda código de
   terceiro; quem roda código de terceiro não tem o que roubar.

E o conserto do primeiro disparo real: o autofix restaurava package.json da base
sem o package-lock.json, e `npm ci` exige que os dois batam - 2 de 10 runs
morreram. O lock vai junto na ida e na volta.

Agent: Claude Opus 5 (Claude Code)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Commit-grande: reúne fase 5, varredura e preview separado num commit só
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>

@estraga-codigo estraga-codigo 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.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • CI (6): autofix.yml, preview-bot.yml, preview-build.yml, preview-deploy.yml
  • arnês (2): autofix-check.mjs, deploy-gate-check.mjs
  • docs (1): PROD-READINESS.md

Tip

Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓

limpo pelos critérios das minhas ações desta rodada

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.


maquiagem de verde por cima de vermelho eu desenmascaro no primeiro golpe de vista 🤡

O CodeQL reprovou o #422 com um alerta CRÍTICO de code injection, e estava certo:
`gh pr comment "${{ steps.pr.outputs.numero }}"` interpola a expressão no TEXTO do
script antes do shell existir. Valor com aspas ou `$(...)` vira comando - e os dois
valores ali vêm de fora: o número atravessou um artefato escrito por um job que
rodou código do fork, e a URL é saída de comando.

Ironia registrada: aconteceu no arquivo que existe para o token não encostar em
código de terceiro.

Os dois descem por `env:`, que o shell trata como dado. E a PRV4 passa a recusar
qualquer `${{ }}` dentro de `run:` no job que tem segredo - o mutante
`publica-interpola` devolve a linha antiga e acende.

Agent: Claude Opus 5 (Claude Code)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: rubenmarcus <rubenmarcus.dev@gmail.com>

@estraga-codigo estraga-codigo 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.

Palhaço Mal

Palhaço Mal · revisor da casa · 🤡

mapa da mudança

  • CI (6): autofix.yml, preview-bot.yml, preview-build.yml, preview-deploy.yml
  • arnês (2): autofix-check.mjs, deploy-gate-check.mjs
  • docs (1): PROD-READINESS.md

Tip

Risco BAIXO · nota 10/10 ▓▓▓▓▓▓▓▓▓▓

pente fino passado: nenhum achado que eu defenda em voz alta

Revisão de bot — fio não resolvido TRAVA o merge (a main exige conversa resolvida). Resolve ou refuta.


todo bug confessa no diff, eu só faço o interrogatório 🤡

@rubenmarcus
rubenmarcus merged commit d1fd60f into main Aug 22, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

target:main PR apontando para a branch main

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants