fix(ci): checkout do Trivy com fallback SHA→ref (CVE gate falhava em 5s) [TH-60348] #7

Merged
tarcisio merged 1 commit from fix/TH-60348-trivy-checkout-sha-fallback into main 2026-07-17 17:13:04 -03:00
Owner

Problema

O CVE gate (security-trivy) do ci-base falhava em ~5s no checkout git puro. Causa provável: git fetch --depth 1 origin <sha> é recusado por servidores Git que não anunciam o objeto (uploadpack.allowAnySHA1InWant desligado) — falha imediata.

Como o job só roda no caminho de prod (if base_ref/ref == main), a 1ª execução real acontece no release — e falhava justamente lá (foi o que barrou o release do v1.259.0; escaneei manualmente e provei 0 CVEs).

Fix

Checkout tenta o SHA; se recusado, cai para o ref do evento (branch/tag), que é sempre anunciado. Em push:tag/push:branch ambos apontam para o mesmo commit.

⚠️ Verificação

Não dá para testar CI compartilhada sem disparar um run real. Precisa ser confirmado no próximo release (o job roda no caminho de main). YAML validado (yaml.safe_load ok). Blast radius limitado: o job já estava vermelho no caminho de prod; só os outros jobs (build/react/python) são independentes e intocados.

Fora do escopo deste PR (documentado em TH-60348)

Os outros 2 defeitos do gate ficam para follow-up, pois exigem mais que uma edição de checkout:

  1. skip→success: em PR para develop o job é skipped e reporta success (verde enganoso). Precisa repensar o if/required.
  2. DB de CVE vencida: --skip-db-update congela na base embutida na imagem tmf-ci-trivy:0.68.2 (medido: UpdatedAt 2026-06-29). Requer republicar a imagem periodicamente ou remover o flag.

Ref TH-60348.

🤖 Generated with Claude Code

## Problema O CVE gate (`security-trivy`) do `ci-base` falhava em ~5s no checkout git puro. Causa provável: `git fetch --depth 1 origin <sha>` é recusado por servidores Git que não anunciam o objeto (`uploadpack.allowAnySHA1InWant` desligado) — falha imediata. Como o job só roda no caminho de prod (`if base_ref/ref == main`), a 1ª execução real acontece no **release** — e falhava justamente lá (foi o que barrou o release do v1.259.0; escaneei manualmente e provei 0 CVEs). ## Fix Checkout tenta o SHA; se recusado, cai para o **ref do evento** (branch/tag), que é sempre anunciado. Em push:tag/push:branch ambos apontam para o mesmo commit. ## ⚠️ Verificação Não dá para testar CI compartilhada sem disparar um run real. **Precisa ser confirmado no próximo release** (o job roda no caminho de main). YAML validado (`yaml.safe_load` ok). Blast radius limitado: o job já estava vermelho no caminho de prod; só os outros jobs (build/react/python) são independentes e intocados. ## Fora do escopo deste PR (documentado em TH-60348) Os outros 2 defeitos do gate ficam para follow-up, pois exigem mais que uma edição de checkout: 1. **skip→success**: em PR para develop o job é *skipped* e reporta `success` (verde enganoso). Precisa repensar o `if`/required. 2. **DB de CVE vencida**: `--skip-db-update` congela na base embutida na imagem `tmf-ci-trivy:0.68.2` (medido: UpdatedAt 2026-06-29). Requer republicar a imagem periodicamente ou remover o flag. Ref TH-60348. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(ci): checkout do Trivy com fallback SHA→ref (gate falhava em 5s) [TH-60348]
Some checks failed
generate-docs.yml / fix(ci): checkout do Trivy com fallback SHA→ref (gate falhava em 5s) [TH-60348] (push) Failing after 0s
login-forgejo-registry.yml / fix(ci): checkout do Trivy com fallback SHA→ref (gate falhava em 5s) [TH-60348] (push) Failing after 0s
sync-docs-to-hub.yml / fix(ci): checkout do Trivy com fallback SHA→ref (gate falhava em 5s) [TH-60348] (push) Failing after 0s
generate-docs.yml / fix(ci): checkout do Trivy com fallback SHA→ref (gate falhava em 5s) [TH-60348] (pull_request) Failing after 0s
login-forgejo-registry.yml / fix(ci): checkout do Trivy com fallback SHA→ref (gate falhava em 5s) [TH-60348] (pull_request) Failing after 0s
sync-docs-to-hub.yml / fix(ci): checkout do Trivy com fallback SHA→ref (gate falhava em 5s) [TH-60348] (pull_request) Failing after 0s
generate-docs.yml / fix(ci): checkout do Trivy com fallback SHA→ref (CVE gate falhava em 5s) [TH-60348] (!7) (pull_request) Failing after 0s
login-forgejo-registry.yml / fix(ci): checkout do Trivy com fallback SHA→ref (CVE gate falhava em 5s) [TH-60348] (!7) (pull_request) Failing after 0s
sync-docs-to-hub.yml / fix(ci): checkout do Trivy com fallback SHA→ref (CVE gate falhava em 5s) [TH-60348] (!7) (pull_request) Failing after 0s
5b765ab762
O CVE gate (security-trivy) falhava em ~5s no checkout git puro: 'git fetch
--depth 1 origin <sha>' é recusado por servidores Git que não anunciam o objeto
(uploadpack.allowAnySHA1InWant desligado). Como o job só roda no caminho de prod
(if base_ref/ref == main), a 1a execução real era o release — e falhava lá.

Tenta o SHA; se recusado, cai para o ref do evento (branch/tag), sempre anunciado.
YAML validado. ⚠️ Precisa de verificação no próximo release (não dá para testar CI
compartilhada sem disparar run). Diagnóstico completo + os outros 2 defeitos do
gate (skip→success em develop; DB de CVE vencida via --skip-db-update) em TH-60348.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
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!7
No description provided.