fix(ci-base): checkout do security-trivy cai para refs/pull/N/head em PR [TH-60348] #82

Merged
tarcisio merged 1 commit from fix/TH-60348-trivy-checkout-pr-head into develop 2026-10-09 16:18:51 -03:00
Owner

O que

Terceiro sintoma da TH-60348: o checkout git puro do security-trivy (ci-base) falhava em todo PR para main de quem usa o ci-base (HelpCor, Hub, Fina).

Em pull_request, o github.sha é o merge-SHA e o github.ref é refs/pull/N/merge — o Forgejo não anuncia nenhum dos dois, então o fetch falhava duas vezes e o job saía em ~5s. Caso real: release v2.89.0 do HelpCor (#1438) bloqueado pelo CI / Security — CVE Gate (Trivy) com deps limpas. Em PR→develop o gate dá "não se aplica", por isso ninguém tinha visto.

Mudança (aditiva)

Em pull_request, o fallback passa a ser refs/pull/<number>/head (sempre anunciado; para trivy fs em lockfiles é o mesmo conteúdo do merge). Fora de PR, segue o github.ref. Push e PRs que já funcionavam não mudam.

Validação

TestCiBaseTrivyCheckoutDePR (ordem: SHA → head do PR → ref do evento) + ci-unico (116), ci-ok, soberania, if-em-caller verdes.

O HelpCor e os outros consumidores usam ci-base.yml@main: o efeito só chega a eles depois do release develop→main do ci-shared.

🤖 Generated with Claude Code

https://claude.ai/code/session_01ES1xwVdpQV69zEsuLLKzx2

## O que Terceiro sintoma da **TH-60348**: o checkout git puro do `security-trivy` (ci-base) falhava em **todo PR para main** de quem usa o ci-base (HelpCor, Hub, Fina). Em `pull_request`, o `github.sha` é o merge-SHA e o `github.ref` é `refs/pull/N/merge` — o Forgejo **não anuncia nenhum dos dois**, então o fetch falhava duas vezes e o job saía em ~5s. Caso real: release v2.89.0 do HelpCor (#1438) bloqueado pelo `CI / Security — CVE Gate (Trivy)` com deps limpas. Em PR→develop o gate dá "não se aplica", por isso ninguém tinha visto. ## Mudança (aditiva) Em `pull_request`, o fallback passa a ser `refs/pull/<number>/head` (sempre anunciado; para `trivy fs` em lockfiles é o mesmo conteúdo do merge). Fora de PR, segue o `github.ref`. Push e PRs que já funcionavam não mudam. ## Validação `TestCiBaseTrivyCheckoutDePR` (ordem: SHA → head do PR → ref do evento) + ci-unico (116), ci-ok, soberania, if-em-caller verdes. > O HelpCor e os outros consumidores usam `ci-base.yml@main`: o efeito só chega a eles depois do release develop→main do ci-shared. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01ES1xwVdpQV69zEsuLLKzx2
fix(ci-base): checkout do security-trivy cai para refs/pull/N/head em PR [TH-60348]
All checks were successful
PR checks (ci-shared) / testes (pull_request) Successful in 7m27s
0edcc9f1f9
Terceiro sintoma da TH-60348. O checkout git puro do security-trivy tentava o
github.sha e, se recusado, o github.ref. Em pull_request os DOIS são
não-anunciados pelo Forgejo (merge-SHA e refs/pull/N/merge), então todo PR→main
de quem usa o ci-base falhava em ~5s no setup — foi o release v2.89.0 do HelpCor
(#1438). Em PR→develop o gate dá "não se aplica" e ninguém via.

Aditivo: em pull_request o fallback passa a ser refs/pull/<number>/head (sempre
anunciado; para trivy fs em lockfiles é o mesmo conteúdo do merge). Fora de PR
segue o ref do evento. Push e PRs que já funcionavam não mudam.

Teste: TestCiBaseTrivyCheckoutDePR (ordem SHA → head do PR → ref do evento).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ES1xwVdpQV69zEsuLLKzx2
tarcisio merged commit 19d2d03d45 into develop 2026-10-09 16:18:51 -03:00
tarcisio deleted branch fix/TH-60348-trivy-checkout-pr-head 2026-10-09 16:18:51 -03:00
Sign in to join this conversation.
No reviewers
No labels
seguranca
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
TMF/ci-shared!82
No description provided.