OPS71 follow-up — flip pós-merge (issue-done/plan-issue-ready) não dispara para PRs mergeados pelo auto-merge nativo (anti-recursão do GITHUB_TOKEN) #121
Labels
No labels
blocked
done
in-prod
in-progress
kind:chore
prio:P1
prio:P2
ready
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
Reference: fsolla/teqo#121
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Débito registrado no fechamento da #113 (capture-review-debts autônomo, 2026-08-20).
Sintoma
O flip automático pós-merge no Forgejo (
issue-done-on-main-merge.yml+plan-issue-ready-on-main-merge.yml, triggerpull_request: closed) nunca roda para PRs mergeados pelo auto-merge nativo do GitHub. Evidência empírica (mesma noite):Closes #113→ flip nunca rodou)Causa raiz
O
agent-pr-ready-automerge.ymlarma o auto-merge comGITHUB_TOKEN: ${{ github.token }}(scripts/github-pr-automerge.mjs → GraphQLenablePullRequestAutoMerge). O merge executado pelo servidor é atribuído aogithub-actions[bot]e o eventopull_request: closedresultante não cria novos workflow runs — proteção anti-recursão documentada do GitHub: eventos disparados peloGITHUB_TOKENnão geram runs novos, com exceção deworkflow_dispatch/repository_dispatch. Merge manual (humano) dispara normalmente (prova: #742). O flip da #97 foi aplicado manualmente via API por isso, com a nota "o fluxo automático será validado no próximo merge com Closes #N" — a validação falhou no #747.Caminhos (a decidir no item)
enablePullRequestAutoMergeautorizada por um PAT (secret novo, ex.GITHUB_AUTOMERGE_PAT, mesmo PAT local do cutover) faz o merge ser atribuído ao usuário → o eventocloseddispara os flips. Guarda RCE preservada (oif:same-repo pré-checkout já exclui fork PRs; o checkout é do repo). Coeso com o molde do repo (PAT local já usado emgithub-pr.mjs/configure-branch-protection.mjs).Nota:
workflow_run/pushtambém são suprimidos para ações doGITHUB_TOKEN— qualquer correção precisa trocar o actor do merge (A/B), não o trigger.Escopo
.github/workflows/agent-pr-ready-automerge.yml+scripts/github-pr-automerge.mjs(+ env do secret).Closes #Nauto-mergeado → run do issue-done aparece → flip acontece.Tracker migrado para o GitHub — continue em #gh764 (github.com/fsolla/teqo/issues/764). Esta Issue Forgejo está fechada.