fix(ci): verificar-docs-produto recebe ORG_LEITURA_TOKEN (input/secret do caller), sem FORGEJO_TOKEN [INFRA-68379] #45
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/verificar-docs-token-infisical"
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?
Causa real (achada pela sessão ORG)
O verificar-docs nunca passou em produto algum: o Forgejo recusa secret com prefixo
FORGEJO_(reservado). Entãosecrets.FORGEJO_TOKENno reusable era o token automático do job, que só enxerga o próprio repo, e o clone do TMF/ORG dava "target couldn't be found". Nenhum produto poderia ter esse secret.O que muda
verificar-docs-produto.ymlrecebe o token de leitura do TMF/ORG, nesta ordem:org_leitura_token: o caller passawith: org_leitura_token: ${{ secrets.ORG_LEITURA_TOKEN }};secrets.ORG_LEITURA_TOKENde caller que usasecrets:;INFRA/prod/ci,CVE_OS_EXCECOES_TOKEN(o mesmo token só-leitura da lista única de CVE; passocontinue-on-error, só roda se o input não veio);FORGEJO_TOKENsaiu da cadeia (o log do erro explica por quê). Clone por git puro dentro de um passo só; o token não vira output nem é impresso.⚠️ Desvio da proposta, com motivo
A proposta era declarar
ORG_LEITURA_TOKENemon.workflow_call.secrets. Não declarei: o repo inteiro documenta e testa que o blocosecrets:emworkflow_callfaz o Forgejo rejeitar o arquivo ("Failing after 0s", INFRA-64944;tests/ci-unico/test_ci.pytrava isso noci.yml). Segui o padrão dohub-issue-sync(input +secrets.Xde caller legado, sem declaração). O caller que preferesecrets: ORG_LEITURA_TOKEN: ...também funciona (caminho 2); o do input é o mais seguro.Prova
tests/ci-unico/test_verificar_docs_token.py(8 testes + trava):gitfalso, ordem input > secret > cofre, falha sem token sem chamar o git, valor nunca no log, sem blocosecrets:, semFORGEJO_TOKEN. Contra a versão anterior do PR: 6 falham. Depois:ci-unico52 OK;ci-config,infisical-secrets,soberaniaOK.Erro meu pego na revisão: a mensagem de erro tinha
${{ secrets.ORG_LEITURA_TOKEN }}dentro dorun:, que o runner avaliaria antes do shell (injetaria o valor). Removido e travado por teste (a trava foi escrita depois da correção; não a vi vermelha).⚠️ Limites
gitfalso. Não rodei o reusable num runner real: o input recebendo${{ secrets.X }}e osecrets.ORG_LEITURA_TOKENnão declarado seguem o precedente dohub-issue-sync, mas não os vi funcionar neste reusable.ORG_LEITURA_TOKENem DANI e helpcor-admin, e os callers (verificar-docs.ymldo DANI #827 e do HelpCor) precisam passar o input. O reusable é chamado por@main: vale só depois do releasedevelop→maindo ci-shared (só do operador).develop.Refs: INFRA-68379, INFRA-68311, DAIS-68002.
🤖 Generated with Claude Code
https://claude.ai/code/session_01UdMSC8CGmShbesE5rfVNfe
Causa real de o verificar-docs nunca ter passado: o Forgejo reserva o prefixo FORGEJO_, então secrets.FORGEJO_TOKEN no reusable era o token AUTOMATICO do job (so enxerga o proprio repo) e o clone do TMF/ORG falhava. Ordem agora: input org_leitura_token, secrets.ORG_LEITURA_TOKEN do caller, CVE_OS_EXCECOES_TOKEN do Infisical INFRA/prod/ci; sem nenhum, falha com mensagem clara SEM chamar o git. Sem bloco secrets: em workflow_call (INFRA-64944). Teste: 8 checagens com git falso (6 vermelhas contra a versao anterior), mais trava de que o run do clone nao tem expressao ${{ }} (injetaria o secret na mensagem). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UdMSC8CGmShbesE5rfVNfeContinuação do #44: ele foi mergeado às 06:40 só com o 1º commit (token do Infisical + fallback FORGEJO_TOKEN). Este PR traz o desenho correto sobre ele e SUBSTITUI a cadeia do #44 (input org_leitura_token, secrets.ORG_LEITURA_TOKEN do caller, Infisical; sem FORGEJO_TOKEN). Até este PR entrar, a develop ainda tem a cadeia antiga, que não funciona (FORGEJO_TOKEN é o token automático do job).