Skip to content

chore(security): fijar cada action por SHA y cada imagen base por digest - #713

Merged
beyondnetPeru merged 1 commit into
developfrom
chore/pin-actions-and-images-by-hash
Sep 15, 2026
Merged

beyondnetPeru merged 1 commit into
developfrom
chore/pin-actions-and-images-by-hash

Conversation

@beyondnetPeru

Copy link
Copy Markdown
Contributor

Cierra las 90 alertas Pinned-Dependencies de OpenSSF Scorecard de la pestaña Security (94 en total; las otras 4 no son de código, ver abajo) y la única alerta CodeQL abierta.

Qué cambia

Qué Cuántas Cómo
uses: owner/repo@vN en workflows y action.yml 128 refs (15 workflows + 1) @<sha> # vX.Y.Z — SHA del tag exacto al que apunta hoy el tag mayor, resuelto con git ls-remote --tags (peeled). Dependabot github-actions (ya declarado) sigue subiéndolos por el comentario.
FROM node:20-alpine / node:22-alpine 13 en 7 Dockerfiles @sha256:… del manifest list multi-arch, resuelto por la API de Docker Hub hoy.
npm install sin fijar 2 de 3 opa-parity.ymlnpm ci --legacy-peer-deps; examples/validate-repo.sh@1.3.2. Los dos npm install -g …@${version} del smoke de sdk-cli-release se quedan: verifican el paquete recién publicado y la versión ya es exacta.
CodeQL js/unused-local-variable 1 pattern.tools.ts: import path sin uso.

Las referencias que ya estaban por SHA (ossf/scorecard-action, codeql-action/upload-sarif, y checkout/setup-node/upload-artifact en un workflow) no se tocan; coinciden con las resueltas (v7.0.1, v7.0.0, v7.0.1).

Lo que la pestaña Security seguirá mostrando y por qué

  • Dependabot (5 medium: hono ×3, qs ×2) — ya cerradas en develop por fix(deps): cerrar las seis moderadas que #703 dejó, y que build-and-test use el mismo gate #704; se apagan cuando la siguiente promoción llegue a main (Dependabot escanea la rama por defecto).
  • Trivy (5 warnings) — los mismos CVE de hono/qs; ídem.
  • Secret scanning docs: update ADR-0048 to v2.0 (Source-Centric Taxonomy) #1AIzaSyD-1234567890abcdefghijklmnopqrstu es el fixture de los tests de redactSecrets(); resuelto como used in tests con nota. No es una credencial.
  • Scorecard CII-Best-Practices — hay que registrar el proyecto en https://www.bestpractices.dev (formulario del owner; no es código).
  • Scorecard Code-Review (0/9) — mide PRs aprobados por otra persona; con un solo mantenedor no se puede subir sin un segundo revisor.
  • Scorecard Fuzzing — no aplica hoy.
  • Scorecard SAST (28/30 commits) — CodeQL corre en cada PR; los 2 restantes son pushes directos (tags). Aceptable.

Verificación

  • ci-runner fast ✓ · guard 64 (Marketplace) ✓ · guard 56 (closure de 4 imágenes) ✓ · guard 58 ✓ · los 16 YAML parsean · tsc del mcp-server sin errores nuevos.
  • Los pins de acciones se resolvieron con un script de un solo uso (no se versiona: dependabot es quien los mantiene a partir de ahora).

🤖 Generated with Claude Code

…est (Scorecard Pinned-Dependencies)

La pestaña Security llevaba 94 alertas de OpenSSF Scorecard, 90 de ellas
Pinned-Dependencies: 74 `uses:` por tag mutable (67 de GitHub, 7 de terceros),
13 `FROM node:XX-alpine` sin digest y 3 `npm install` sin fijar. Un tag se
puede mover; un SHA y un digest no.

- 128 referencias `uses:` en 15 workflows + `action.yml` pasan a
  `owner/repo@<sha> # vX.Y.Z`. El SHA es el del tag exacto al que apunta hoy el
  tag mayor (`v7` → `v7.0.1`), resuelto con `git ls-remote --tags` y peeled;
  el comentario es el que dependabot (ecosistema github-actions, ya declarado)
  usa para seguir subiéndolos. Las que ya estaban por SHA (scorecard,
  codeql upload-sarif, checkout/setup-node/upload-artifact en un workflow)
  no se tocan y coinciden con las resueltas.
- 13 `FROM node:20-alpine` / `node:22-alpine` en 7 Dockerfiles llevan el
  digest del manifest list de Docker Hub (multi-arch), resuelto hoy por la
  API del registro. El guard 56 sigue parseando el `FROM ... AS stage`.
- `opa-parity.yml`: `npm install --legacy-peer-deps` → `npm ci
  --legacy-peer-deps`, como el resto de workflows.
- `examples/validate-repo.sh`: `npm install -g @beyondnet/evolith-cli@1.3.2`.
  Los dos `npm install -g …@${version}` del smoke de sdk-cli-release quedan:
  son la comprobación del paquete recién publicado y la versión ya es exacta.
- `pattern.tools.ts`: import `path` sin uso (única alerta CodeQL abierta).

Verificado: `ci-runner fast` ✓, guard 64 ✓, guard 56 ✓ (4 imágenes), guard 58
✓, los 16 YAML parsean, tsc del mcp-server sin errores nuevos.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@beyondnetPeru
beyondnetPeru requested a review from a team as a code owner September 14, 2026 21:42
@github-actions

Copy link
Copy Markdown

📊 Bilingual Coverage Impact

PR Changes

  • Paired EN/ES files modified: 0
  • New EN files needing ES translation: 0

Repository Coverage

Metric Value
Total EN files 527
Total ES files 497
Paired files 0
Coverage 0%

Good: All EN changes have ES counterparts.


Generated by GitHub Actions

@beyondnetPeru
beyondnetPeru merged commit 54e0344 into develop Sep 15, 2026
52 checks passed
@beyondnetPeru
beyondnetPeru deleted the chore/pin-actions-and-images-by-hash branch September 15, 2026 13:50
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