sagas/odisea-del-blog-maestro/005-primeras-lineas-de-logica.md

2026-03-24 published

Episodio 005 — Primeras líneas de lógica (Astro → Node)

Episodio 005 — Primeras líneas de lógica (Astro → Node)

Serie: bitácora de ingeniería — caprini.dev
Slug: 005-primeras-lineas-de-logica
Resumen: el blog sigue siendo Astro en la raíz, pero SPEC-001 no tiene por vivir dentro de src/: el progress tracker arranca como proyecto hermano en projects/001-progress-tracker/, con Node.js, dotenv y el SDK oficial @gitbeaker/rest para hablar con GitLab sin mezclar dependencias con el build estático.


El salto de mentalidad

Astro resuelve contenido, rutas y estética Synthcode / Neo-Dev (ver BRANDING.md). La herramienta de flujo resuelve integración: leer el último commit de caprini-blog en la rama main y, más adelante, formatear un bloque copiable para X. Separar carpetas evita ensuciar el Content Layer y deja claro qué es “sitio público” y qué es “CLI / scripts”.


Reto: API de GitLab y secretos

  1. Token (GITLAB_TOKEN) — PAT de GitLab con alcance read_api (mínimo para listar commits vía API). No lo pegues en issues ni en commits; rota si se filtra.
  2. Proyecto (PROJECT_ID) — GitLab acepta ID numérico o path con namespace (caprini/caprini-blog). El ID fiable está en Settings → General → Project ID. La URL del proyecto muestra el path; el número no siempre es obvio en la barra de direcciones, por eso conviene mirar Ajustes.
  3. .env — Copia desde .env.example, rellena valores reales y mantén .env fuera de Git (ignorado en la raíz del repo). El script carga primero ../../.env (raíz del monorepo) y luego .env local en la carpeta del tracker, para que puedas centralizar secretos o aislarlos por herramienta.

Qué quedó hecho en esta fase

  • Carpeta projects/001-progress-tracker/ con package.json, tracker.mjs y dependencias dotenv + @gitbeaker/rest.
  • Comando: desde esa carpeta, ñpm start imprime el **mensaje completo** del último commit de la rama configurada (main` por defecto).
  • Plantilla .env.example documentada; errores 401/404 con mensajes orientativos en stderr y código de salida ≠ 0.

Próximo paso lógico

Cerrar el MVP de SPEC-001: fecha legible, enlace al repo y bloque visual copiable; tests del formateador con mocks de respuesta API (sin red en CI).