Skip to content

chore: instalar o gate de cobertura de logs no CI - #206

Open
nicholas-maestrello wants to merge 2 commits into
docs/log-coverage-auditfrom
chore/log-coverage-gate
Open

chore: instalar o gate de cobertura de logs no CI#206
nicholas-maestrello wants to merge 2 commits into
docs/log-coverage-auditfrom
chore/log-coverage-gate

Conversation

@nicholas-maestrello

Copy link
Copy Markdown
Contributor

O que é

Instala um scorer determinístico de cobertura de logs e um workflow Log coverage que bloqueia PRs que mexem em código auditado sem trazer um relatório atualizado.

Empilhado sobre #205 (as auditorias julgadas). Revisar aquele primeiro.

Escopo auditado

node/**/*.ts, exceto testes, mocks, dist, build e typings. Score inicial: 68/93 = 73,1% (25 achados missing, 0 insufficient).

Esta não é a mesma métrica das auditorias de #205

As auditorias de #205 foram julgadas por um modelo e contam também abortos de validação, early returns e contexto que atravessa funções. Este scorer casa estrutura com regex e só enxerga catch e .catch() — resolução mais baixa de propósito, em troca de ser reproduzível byte a byte. Um score não corrige nem substitui o outro.

O que trava e o que não trava

  • Trava: PR que mexe em arquivo do escopo (ou em scripts/log_coverage/audit.py) sem o relatório atualizado daquele PR.
  • Trava: teste do scorer quebrado.
  • Não trava: o score cair. Regressão vira comentário para o revisor decidir.
  • Não trava: PR só de docs ou config.

Dependências novas

python3 — provisionado no CI via actions/setup-python, e necessário localmente para gerar o relatório. Sem impacto no runtime do app.

Como usar

make log-coverage                 # score e achados
make log-coverage-report PR=123   # gera o relatório do PR
make log-coverage-test            # testes do scorer

Depois do merge

O check só passa a bloquear quando for marcado como obrigatório em Settings → Branches → branch protection → Require status checks to pass, selecionando Log coverage. Até lá ele reporta sem travar.

Test plan

  • 64 testes do scorer passam localmente
  • scan retorna total plausível, sem testes nem código gerado nos achados
  • O workflow roda verde neste PR com o relatório commitado

Made with Cursor

Adiciona um scorer determinístico de cobertura de logs e um workflow que
exige, em todo PR que mexe em node/**/*.ts, um relatório atualizado
commitado. O score em si não trava o merge: uma regressão vira sinal de
review no comentário do PR, porque travar no número convida a burlá-lo.

A métrica é de resolução mais baixa que as auditorias julgadas em
docs/log-coverage-audits/ — só conta catch e .catch() — em troca de ser
reproduzível byte a byte, que é o que permite manter um baseline.

Co-authored-by: Cursor <[email protected]>
@vtex-io-docs-bot

Copy link
Copy Markdown

Beep boop 🤖

Thank you so much for keeping our documentation up-to-date ❤️

@vtex-io-ci-cd

vtex-io-ci-cd Bot commented Aug 21, 2026

Copy link
Copy Markdown

Hi! I'm VTEX IO CI/CD Bot and I'll be helping you to publish your app! 🤖

Please select which version do you want to release:

  • Patch (backwards-compatible bug fixes)

  • Minor (backwards-compatible functionality)

  • Major (incompatible API changes)

And then you just need to merge your PR when you are ready! There is no need to create a release commit/tag.

  • No thanks, I would rather do it manually 😞

@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown

Log coverage

Deterministic proxy metric — 68/93 = 73.1% (missing 25, insufficient 0). The score itself never blocks: a regression is a review signal, not a failure. What blocks is a missing or stale report.

  • Baseline (working tree): 68/93 = 73.1% (missing 25, insufficient 0)
  • This branch: 68/93 = 73.1% (missing 25, insufficient 0)
  • Delta: no change

New or regressed (0)

none

Resolved or removed (0)

none

Committed report

Up to date — docs/log-coverage/reports/pr-206/metrics.json matches this branch. This check is passing.

Regenerate with make log-coverage-report PR=206.

Baseline inicial em 68/93 = 73,1%. Os 25 achados ficam registrados como
ponto de partida — o gate exige relatório atualizado, não score alto.

Co-authored-by: Cursor <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant