Saltar a contenido

🧩 Lab 04: Gobernanza SCA del Repo .github

Escenario de Misión

Eres GitOps Governance Operator. Tu objetivo es auditar y endurecer el repositorio inputs/repositories/GitHub/.github para incorporarlo al catálogo de gobernanza de atlantyqa-labs con enfoque local-first.


1. 🎯 Objetivo Operativo

Al terminar este lab tendrás:

  1. Evidencia SCA reproducible del repo .github.
  2. Hallazgos priorizados de supply-chain en workflows.
  3. Request de bootstrap validado para promover .github a atlantyqa-labs.
  4. Registro de gobernanza actualizado (catálogo + plan de onboarding).

2. ⚔️ Ejecución de la misión

target="inputs/repositories/GitHub/.github"
find "$target" -maxdepth 3 -type f | sort
rg -n "^\s*uses:\s*" "$target"/workflows/*.yml
rg -n "sudo apt-get|pip install|git log --show-signature -1" "$target"/workflows/*.yml

Resultado esperado: 1. 3 workflows detectados. 2. Uso de actions/checkout@v3. 3. Instalación runtime mutable en gen-docs.yml.

rg -n --hidden -g '!.git' \
  -e 'ghp_[A-Za-z0-9]{30,}' \
  -e 'github_pat_[A-Za-z0-9_]{20,}' \
  -e 'AKIA[0-9A-Z]{16}' \
  -e 'BEGIN (RSA|EC|OPENSSH|PRIVATE) KEY' \
  inputs/repositories/GitHub/.github || true

find inputs/repositories/GitHub/.github -type f -iname '*.iso'

Resultado esperado: 1. secret_hit_count=0 2. forbidden_iso_count=0

bash scripts/repo-bootstrap-from-inputs.sh \
  --mode validate \
  --request-file .github/repo-bootstrap/requests/org-community-health.yml \
  --report-file outputs/repo-bootstrap/org-community-health.md

Resultado esperado: 1. Reporte en outputs/repo-bootstrap/org-community-health.md 2. Estado passed.

bash scripts/github-inputs-recovery-runbook.sh \
  --inputs-root inputs \
  --target-org atlantyqa-labs \
  --owners "Kabehz,atlantyde-labs,atlantyqa-labs" \
  --skip-github-check \
  --publish-all-owned \
  --dry-run

Resultado esperado: 1. El repo .github aparece como candidato en repo-inventory.tsv. 2. workflow_count para .github es mayor que 0.


3. 📸 Evidencia obligatoria

  • [ ] Copia de outputs/repo-bootstrap/org-community-health.md.
  • [ ] Extracto de repo-inventory.tsv con la fila de .github.
  • [ ] Extracto de sca-findings.tsv con secret_hit_count y workflow_count.
  • [ ] Commit hash con cambios de catálogo y documentación.
Template PR (resumen):
- Scope: inputs/.github SCA + governance onboarding
- Findings: actions pinning / permissions / runtime mutable installs
- Bootstrap request: org-community-health.yml (validate: passed)
- Catalog: .github added with decision=review

4. ✅ Criterio de aprobación

  1. Reporte SCA generado y verificable en local.
  2. Request bootstrap válido.
  3. Catálogo GitOps actualizado con .github.
  4. Riesgos documentados con acciones de hardening concretas.

🎯 Siguiente Nivel