Skip to content

chore(ci): exigir o que já era regra, e fechar o que a falta do portã… - #81

Merged
davicorrea0 merged 1 commit into
appariciojunior:mainfrom
davicorrea0:chore/security-and-ci-gate
Sep 15, 2026
Merged

davicorrea0 merged 1 commit into
appariciojunior:mainfrom
davicorrea0:chore/security-and-ci-gate

Conversation

@davicorrea0

Copy link
Copy Markdown
Collaborator

…o deixou entrar

O repositório tinha um único workflow, deploy-pages.yml, com gatilho push: [main] — ou seja, tudo rodava DEPOIS do merge. npm test e npx tsc --noEmit já eram a regra da casa (README, passo 5 de "Contribute"), mas ninguém os exigia.

O preço disso estava medido no lockfile: npm audit --omit=dev acusava 4 vulnerabilidades em dependência de produção, incluindo duas RCE NÃO AUTENTICADAS contra Next 16.3.2 (GHSA-p293-qw3h-jr36, servidor Windows; GHSA-2xp9-vwfh-vxw4, Image Optimization com AVIF). O package.json já pedia ^16.2.10, então só o lockfile segurava a versão vulnerável — nenhuma linha de código precisava mudar.

Bump, todos patch/minor, nenhum pacote somado ou removido (39 versões):

next 16.3.2 -> 16.3.4
sharp 0.35.3 -> 0.35.4
@xmldom/xmldom 0.8.13 -> 0.8.15
baseline-browser-mapping 2.10.43 -> 2.11.21

.github/workflows/ci.yml roda em pull_request: npm ci, tsc --noEmit, npm test, npm run build e npm audit --omit=dev --audit-level=high. O audit reprova o job de propósito — um aviso que ninguém precisa resolver é um aviso que ninguém resolve — e fica por último para o contribuidor receber os sinais de correção antes de um CVE que não é dele. Não encosta no deploy-pages.yml.

Validado localmente, nesta ordem:

npm ci -> ok
npm audit --omit=dev -> found 0 vulnerabilities (era 1 crítica, 2 altas, 1 moderada)
npx tsc --noEmit -> limpo
npm test -> 13 suítes, failures: []
npm run build -> ok, 22 rotas

…o deixou entrar

O repositório tinha um único workflow, `deploy-pages.yml`, com gatilho
`push: [main]` — ou seja, tudo rodava DEPOIS do merge. `npm test` e
`npx tsc --noEmit` já eram a regra da casa (README, passo 5 de "Contribute"),
mas ninguém os exigia.

O preço disso estava medido no lockfile: `npm audit --omit=dev` acusava 4
vulnerabilidades em dependência de produção, incluindo duas RCE NÃO
AUTENTICADAS contra Next 16.3.2 (GHSA-p293-qw3h-jr36, servidor Windows;
GHSA-2xp9-vwfh-vxw4, Image Optimization com AVIF). O `package.json` já pedia
`^16.2.10`, então só o lockfile segurava a versão vulnerável — nenhuma linha
de código precisava mudar.

Bump, todos patch/minor, nenhum pacote somado ou removido (39 versões):

  next                     16.3.2  -> 16.3.4
  sharp                    0.35.3  -> 0.35.4
  @xmldom/xmldom           0.8.13  -> 0.8.15
  baseline-browser-mapping 2.10.43 -> 2.11.21

`.github/workflows/ci.yml` roda em `pull_request`: npm ci, tsc --noEmit,
npm test, npm run build e `npm audit --omit=dev --audit-level=high`. O audit
reprova o job de propósito — um aviso que ninguém precisa resolver é um aviso
que ninguém resolve — e fica por último para o contribuidor receber os sinais
de correção antes de um CVE que não é dele. Não encosta no deploy-pages.yml.

Validado localmente, nesta ordem:

  npm ci                -> ok
  npm audit --omit=dev  -> found 0 vulnerabilities (era 1 crítica, 2 altas, 1 moderada)
  npx tsc --noEmit      -> limpo
  npm test              -> 13 suítes, failures: []
  npm run build         -> ok, 22 rotas

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@davicorrea0
davicorrea0 merged commit 11f808c into appariciojunior:main Sep 15, 2026
1 check passed
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