teqo/scripts
Francisco Solla ac11afecf3 ops(OPS61): flip de issues pós-merge com PAT + gate do rollup checks + branch protection real no Forgejo
- issue-done/plan-issue-ready: env FORGEJO_API_TOKEN (GITHUB_TOKEN 403 em
  Issues) + fork guard (checkout de fork roda script do fork com o PAT — RCE)
- forgejo-issue-transition: falha de flip vira exit 1 (job vermelho, nunca
  skip silencioso)
- waitForChecks: exige o rollup CI (PR) / checks presente+verde (raça PR #52:
  snapshot com jobs não-agendados parecia verde); mergeable=false só conta
  como conflito após a cascata assentar; timeouts 30→45min (CLI) e 40→55min
  (workflow)
- configure-branch-protection: contexto real CI (PR) / checks* (Forgejo casa
  por glob contra 'CI (PR) / checks (pull_request)'; literal 'checks' nunca
  casaria), idempotente GET→POST/PATCH, verificação pós-aplicação; decisão
  pura em scripts/lib/branch-protection.mjs
- docs honestas (AGENT-OPS, agent-pr-workflow.mdc, CUTOVER-MAIN-ONLY, README)
- testes: raça do rollup/rollup failure/mergeable pré-settle +
  branchProtection create/update/noop + glob real
2026-08-18 17:45:54 -03:00
..
consent-texts Restore full roadmap detail and align project documentation. 2026-07-19 16:19:36 -03:00
lib ops(OPS61): flip de issues pós-merge com PAT + gate do rollup checks + branch protection real no Forgejo 2026-08-18 17:45:54 -03:00
agent-claim.mjs OPS50: port CI e scripts de agentes do GitHub para o Forgejo 2026-08-16 23:32:20 -03:00
agent-file-miss.mjs OPS50: port CI e scripts de agentes do GitHub para o Forgejo 2026-08-16 23:32:20 -03:00
agent-pool.mjs OPS50: port CI e scripts de agentes do GitHub para o Forgejo 2026-08-16 23:32:20 -03:00
agent-prioritize.mjs OPS50: port CI e scripts de agentes do GitHub para o Forgejo 2026-08-16 23:32:20 -03:00
agent-promote-related-on-merge.mjs OPS50: port CI e scripts de agentes do GitHub para o Forgejo 2026-08-16 23:32:20 -03:00
agent-ready.mjs OPS50: port CI e scripts de agentes do GitHub para o Forgejo 2026-08-16 23:32:20 -03:00
agent-register.mjs OPS50: port CI e scripts de agentes do GitHub para o Forgejo 2026-08-16 23:32:20 -03:00
agent-status.mjs OPS50: port CI e scripts de agentes do GitHub para o Forgejo 2026-08-16 23:32:20 -03:00
assert-local-database.mjs Engineering Pass 3: consolidate patterns and lock them with guards. 2026-07-29 06:11:29 -03:00
build-bahia-demographics.mjs Engineering Pass 3: consolidate patterns and lock them with guards. 2026-07-29 06:11:29 -03:00
build-bahia-geometries.mjs Engineering Pass 3: consolidate patterns and lock them with guards. 2026-07-29 06:11:29 -03:00
build-bahia-tse-city-codes.mjs Engineering Pass 3: consolidate patterns and lock them with guards. 2026-07-29 06:11:29 -03:00
build-changelog.mjs OPS44: changelog por entrega + guards de docs + merge por rebase 2026-08-13 17:55:22 +00:00
build-election-aggregates.mjs B13+: concordância LQ, readout de escopo no mapa e DRY do build de agregados. 2026-07-29 16:26:43 -03:00
build-municipality-zone-geometries.mjs Engineering Pass 3: consolidate patterns and lock them with guards. 2026-07-29 06:11:29 -03:00
check-changelog-append-only.mjs OPS44: changelog por entrega + guards de docs + merge por rebase 2026-08-13 17:55:22 +00:00
check-docs-conflict-markers.mjs OPS44: changelog por entrega + guards de docs + merge por rebase 2026-08-13 17:55:22 +00:00
check-plans-only-pr-closes.mjs OPS12 — CI bloqueia Closes/Fixes em PR só docs/plans 2026-08-01 11:26:19 +00:00
check-push-chain.mjs ops(OPS51): migra o banco de produção do Neon para o Postgres do homeserver (teqo_1313) 2026-08-17 22:41:18 +00:00
check-test-locations.mjs chore: migrate .cursor/ references to .agents/ folder 2026-08-05 00:09:09 -03:00
ci-scope.mjs refactor(OPS34): fixes do /simplify — fallback e2e_shards, timeout webServer CI-only, pin anti-drift, docs 2026-08-10 15:37:11 -03:00
configure-branch-protection.mjs ops(OPS61): flip de issues pós-merge com PAT + gate do rollup checks + branch protection real no Forgejo 2026-08-18 17:45:54 -03:00
db-doctor.mjs feat(worktree): ambientes isolados por worktree — porta própria, bancos próprios, migrations no provision 2026-08-08 11:33:07 -03:00
db-pull.mjs ops(OPS51): migra o banco de produção do Neon para o Postgres do homeserver (teqo_1313) 2026-08-17 22:41:18 +00:00
db-start.mjs fix(OPS37): db:start idempotente — não recria o container Postgres compartilhado (no-op quando saudável; --force-recreate explícito) 2026-08-10 20:40:36 -03:00
deploy-homeserver.sh fix(ops OPS53): deploy — compose run consome o stdin do bash -s (migrate com </dev/null); build via --network host + proxy socat (BuildKit recusa rede bridge custom) 2026-08-18 01:59:17 +00:00
dev.mjs fix(OPS40): pnpm dev honra o PORT do .env.local — next dev -p via scripts/dev.mjs (Closes #682) 2026-08-11 20:04:07 -03:00
e2e-affected.mjs ci(pr): cascade phase1→phase2 with blast-radius skips 2026-07-31 20:57:18 -03:00
ensure-repo-deps.mjs feat(ops): auto-promote stage→main e merge em stage sem exigir head (#68) 2026-07-30 21:12:52 -03:00
fill-image.mjs feat(site): publica home da campanha Jorge Solla 1313 2026-08-16 00:49:24 -03:00
forgejo-dispatch.mjs OPS50: port CI e scripts de agentes do GitHub para o Forgejo 2026-08-16 23:32:20 -03:00
forgejo-issue-transition.mjs ops(OPS61): flip de issues pós-merge com PAT + gate do rollup checks + branch protection real no Forgejo 2026-08-18 17:45:54 -03:00
forgejo-pr-automerge.mjs ops(OPS61): flip de issues pós-merge com PAT + gate do rollup checks + branch protection real no Forgejo 2026-08-18 17:45:54 -03:00
gate-ci.mjs ops(OPS59): pre-push sem e2e — e2e roda uma vez, no CI (gate local fica com os outros testes) 2026-08-18 17:56:41 +00:00
git-push.mjs feat(ops): auto-promote stage→main e merge em stage sem exigir head (#68) 2026-07-30 21:12:52 -03:00
guard-dev-db.mjs Engineering Pass 3: consolidate patterns and lock them with guards. 2026-07-29 06:11:29 -03:00
import-projecao.mjs fix(campanha): preserve StateDeputy migration identity 2026-08-06 18:38:47 -03:00
issue.mjs OPS50: port CI e scripts de agentes do GitHub para o Forgejo 2026-08-16 23:32:20 -03:00
recover-media.mjs ops(OPS52-media-guard): reconcile do media:recover exige MEDIA_RECOVER_CONFIRM=1 (guard de intenção explícita) 2026-08-18 12:45:32 -03:00
regenerate-municipality-catalog-snapshot.mjs Engineering Pass 3: consolidate patterns and lock them with guards. 2026-07-29 06:11:29 -03:00
render-ui-draft.mjs chore(plan-issue): rascunho UI/UX do gate vira HTML+Tailwind commitado no repo (ad-hoc) 2026-08-11 19:14:21 -03:00
resize-images.mjs feat(site): publica home da campanha Jorge Solla 1313 2026-08-16 00:49:24 -03:00
run-e2e-affected.mjs fix(ci): isola bundle e2e do servidor de desenvolvimento 2026-08-16 01:25:06 -03:00
seed-consent.mjs Engineering Pass 3: consolidate patterns and lock them with guards. 2026-07-29 06:11:29 -03:00
seed-loader.mjs Add TSE 2022 election results model and local seed import. 2026-07-18 18:25:19 -03:00
seed-minimal.mjs feat(C112): múltiplos telefones por pessoa — Contact.phones array (ordem = prioridade) 2026-08-11 10:47:02 -03:00
seed-posts.mjs chore(OPS60): guard SEED_MEDIA_CONFIRM para escrita no bucket via db:seed:posts 2026-08-18 20:11:54 +00:00
seed-tse-results.mjs Engineering Pass 3: consolidate patterns and lock them with guards. 2026-07-29 06:11:29 -03:00
test-affected.mjs ci(pr): cascade phase1→phase2 with blast-radius skips 2026-07-31 20:57:18 -03:00
worktree.mjs OPS52 — Migrar a media de produção do Vercel Blob para o Garage S3 2026-08-18 02:45:52 +00:00