Skip to content

Dev to Develop#139

Merged
fuzilogik2019 merged 13 commits intodevelopfrom
dev
Jan 12, 2026
Merged

Dev to Develop#139
fuzilogik2019 merged 13 commits intodevelopfrom
dev

Conversation

@fuzilogik2019
Copy link
Copy Markdown
Contributor

@fuzilogik2019 fuzilogik2019 commented Jan 12, 2026

Summary by CodeRabbit

  • New Features

    • Nueva sección de Tutoriales con búsqueda, filtros por etiquetas y vista destacada; aparece también como sección "Tutoriales recientes" en la página principal.
    • Nuevo banner principal con botones de acceso a Docs y Changelog.
  • Documentation

    • Varios tutoriales prácticos añadidos (Next.js, Node.js, PHP/Laravel, backups, etc.) en inglés y español.
    • Registro de cambios (Changelog) publicado y localizado.
  • Chores

    • Generación automática de datos de tutoriales y configuración CMS incorporadas.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jan 12, 2026

Caution

Review failed

The pull request is closed.

Walkthrough

Se añaden páginas y componentes de tutoriales, scripts para generarlos y configurar el CMS, múltiples entradas de changelog (en y es), ajustes en la configuración de Docusaurus, nuevos targets en Makefile y cambios de estilos/tema y traducciones para soportar Tutorials y Changelog.

Changes

Cohort / File(s) Resumen
Makefile & build scripts
Makefile, package.json
Nuevos targets Makefile (build, build-en, build-es, serve, collections, tutorials, clear, translations, help) y scripts npm: generate-tutorials, prestart, prebuild.
Generadores (Python)
generate_cms_config.py, generate_tutorials.py
Nuevos scripts que generan static/admin/config.yml (Sveltia/NetlifyCMS config) y src/data/tutorials-generated.json a partir de MDX. Incluyen parsing/frontmatter y salida en filesystem.
Docusaurus config & sidebars
docusaurus.config.js, sidebars-tutorials.js
Añade plugins: changelog blog y docs tutorials; ajusta routeBasePath y navbar; añade sidebar autogenerada para tutorials.
CMS estático
static/admin/config.yml, static/admin/index.html
Configuración completa de colecciones (docs, tutorials, changelog, project, etc.) y página mínima de admin para el CMS.
Tutorials: contenido
tutorials/*.mdx, src/data/tutorials-generated.json
Nuevos tutoriales MDX (database-backup, nextjs-deploy, node-api, php-laravel, nuevo-*) y JSON generado con metadatos.
Tutorials: página y UI
src/pages/tutorials/*, src/pages/tutorials/styles.module.css, src/pages/tutorials/_components/*
Nueva página /tutorials con búsqueda, filtrado por tags, componentes TutorialSearchBar y TutorialFilters y estilos completos.
TutorialCard & homepage
src/components/TutorialCard/*, src/components/Homepage/*, src/pages/index.js
Nuevo TutorialCard reutilizable; HomepageHeader y RecentTutorials añadidos y exportados; página de inicio refactorizada para usar estos componentes.
Estilos y tema
src/css/custom.css, src/components/*/*.module.css, src/components/TutorialCard/TutorialCard.module.css
Variables CSS nuevas/ajustadas, tema oscuro claro refinado, nuevos módulos CSS para hero, tarjetas y tutoriales (animaciones, responsive).
i18n y traducciones
i18n/en/code.json, i18n/es/code.json, i18n/es/.../changelog/*.md, i18n/es/.../options.json
Nuevas claves de i18n para Tutorials y múltiples archivos de changelog traducidos al español; archivo options.json para el plugin de changelog en es.
Changelogs (inglés)
changelog/*.md
Muchos archivos de registro añadidos (v1.0.0 → v2.0.1 y posteriores) con frontmatter y secciones New Features / Bug Fixes.
Changelogs (español)
i18n/es/docusaurus-plugin-content-blog-changelog/*.md
Equivalentes en español de los changelogs anteriores; localizaciones completas.

Sequence Diagram(s)

sequenceDiagram
  participant Dev as Desarrollador/CI
  participant GT as generate_tutorials.py
  participant GC as generate_cms_config.py
  participant FS as Filesystem (src/, static/)
  participant D as Docusaurus build
  Dev->>GT: Ejecutar (prestart/prebuild)
  GT->>FS: Escribe src/data/tutorials-generated.json
  Dev->>GC: Ejecutar (collections target / manual)
  GC->>FS: Escribe static/admin/config.yml
  Dev->>D: npm run start / npm run build
  D->>FS: Consume src/data & static/admin para generar sitio estático
  Note right of D: Resultado: /tutorials, CMS config y changelog disponibles
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • agustinoli
  • karim090

Poem

🍍 en sleakops arreglamos los conflictos a las piñas,
tutoriales que brotan, CMS que camina,
changelogs en dos idiomas y un Makefile que avisa,
scripts que generan y CSS que agoniza,
¡documentación lista, que la rama se eterniza! 🚀

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive El título es demasiado vago y genérico. 'Dev to Develop' solo indica un merge de ramas sin describir qué cambios significativos se incluyen en la solicitud. Considera un título más descriptivo que refleje los cambios principales, como 'Agregar soporte para tutoriales, changelog y configuración de CMS' o similar que resuma el contenido real del PR.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 1c5e068 and b02ce7c.

📒 Files selected for processing (4)
  • Makefile
  • docs/changelog.mdx
  • docusaurus.config.js
  • i18n/es/docusaurus-plugin-content-docs/current/changelog.mdx

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@fuzilogik2019 fuzilogik2019 merged commit 4e9500b into develop Jan 12, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 14

Note

Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
i18n/es/docusaurus-plugin-content-docs/current/changelog.mdx (3)

208-208: Error tipográfico en el texto.

Falta la letra inicial "C" en "orrección". Además, hay un error ortográfico: "Cluster" debería llevar tilde como "Clúster" para mantener consistencia con el resto del documento.

🔧 Corrección propuesta
-- **Cluster con apagado nocturno:** orrección en el estado mostrado de clusters con apagado automático.
+- **Clúster con apagado nocturno:** Corrección en el estado mostrado de clústeres con apagado automático.

209-209: Errores ortográficos y de consistencia.

Múltiples problemas en esta línea:

  • "grupo de variables" debería ser "Variable Groups" o "Grupos de Variables" (consistencia con el resto del documento)
  • "Arreglo" es muy informal, debería ser "Corrección"
✏️ Corrección propuesta
-- **Filtros en grupo de variables:** Arreglo de filtro por proyecto en listado de group de variables
+- **Filtros en Variable Groups:** Corrección de filtro por proyecto en listado de Variable Groups.

275-275: Error tipográfico en término de Kubernetes.

"PodDisruptionBudge" está mal escrito - el término correcto de Kubernetes es "PodDisruptionBudget" (con "t" al final).

🔨 Corrección propuesta
-- **Workers en Clúster de Desarrollo:** Se eliminó el PodDisruptionBudge el desescalado en entorno con apagado nocturno, mejorando la fiabilidad de los workers en entornos de desarrollo.
+- **Workers en Clúster de Desarrollo:** Se eliminó el PodDisruptionBudget, mejorando el desescalado en entornos con apagado nocturno y la fiabilidad de los workers en entornos de desarrollo.
🤖 Fix all issues with AI agents
In @changelog/2024-01-12-V1.2.1.md:
- Line 4: El frontmatter en el archivo changelog/2024-01-12-V1.2.1.md tiene la
fecha incorrecta; reemplaza el valor del campo `date` que actualmente es
`2024-12-01` por `2024-01-12` para que coincida con el nombre del archivo y el
contenido, asegurando consistencia en el ordenamiento de los changelogs.

In @changelog/2025-11-10-V2.1.0.md:
- Around line 1-6: The frontmatter `date` field and the human-readable date in
the body are inconsistent (`date: 2025-11-10` vs body `11/05/2025`); update the
body to match the frontmatter using an unambiguous ISO format (e.g.,
`2025-11-10`) or remove the duplicate date so the frontmatter is the single
source of truth, and apply the same change to the other occurrence on lines
12-13.

In @changelog/2025-11-13-V2.2.0.md:
- Around line 1-12: The frontmatter date value `date: 2025-11-13` and the
in-body date string `10/25/2025` disagree; pick the correct release date, verify
whether the year should be 2024 or 2025, then update both the frontmatter `date:
...` and the in-body date string to the same ISO or localized format you choose
(e.g., `2024-10-25` or `2024-11-13`) so they match and reflect the confirmed
release year.

In @i18n/es/docusaurus-plugin-content-blog-changelog/2024-08-12-V1.6.0.md:
- Around line 23-24: Remove the two misplaced bullet lines ("Corrección de un
error al regenerar certificados, así como problemas con builds que no se
ejecutaban correctamente." and "Errores de frontend relacionados con listados y
problemas de API que causaban errores de filtrado han sido corregidos.") from
the "Nuevas Funcionalidades" section and ensure they remain only once under
"Correcciones de Errores" to avoid duplication.

In @package.json:
- Around line 7-8: The project currently runs "python3 generate_tutorials.py"
via the package.json "generate-tutorials" script and triggers it in the
"prestart" hook, but the base image (FROM node:20.18.0) in the Dockerfile does
not include Python; either install Python in the image or move generation out of
npm hooks: Option A — update the Dockerfile derived from FROM node:20.18.0 to
install python3 (and pip if needed) and ensure the tutorial script is copied
into the image before running yarn so "prestart" can run successfully; Option B
— remove the "prestart" hook that runs "npm run generate-tutorials" (and any
"prebuild" equivalent), add a Makefile target (e.g., "generate-tutorials") that
runs "python3 generate_tutorials.py" and update README to require running that
make target before npm start/build, keeping the package.json
"generate-tutorials" script only for local convenience.

In @src/components/Homepage/HomepageHeader.module.css:
- Around line 108-167: Add a prefers-reduced-motion media query that disables
the keyframe animations and transforms for users who request reduced motion:
inside the query set animation: none for the animation helper classes
(.animate-fade-in-up, .animate-fade-in-right, .animate-fade-in) and for the
hero-specific classes (.heroTitle, .heroSubtitle, .buttons) override opacity to
1 and transform to none so they render statically; also ensure the @keyframes
can remain but are not applied when prefers-reduced-motion is active.

In @src/components/Homepage/RecentTutorials.module.css:
- Around line 1-11: The fadeInUp keyframes use opacity:0 and transform which can
leave content hidden for users with reduced motion; add a prefers-reduced-motion
media query that disables the animation and forces the end state (e.g., set
animation: none on elements using fadeInUp and ensure opacity: 1 and transform:
none) so elements using @keyframes fadeInUp are visible when
prefers-reduced-motion: reduce; apply the same change for the other animation
block referenced (lines 53-74) and any selectors that assign the animation.

In @src/css/custom.css:
- Around line 34-38: Falta definir la variable --custom-text-primary en el
bloque de tema oscuro; añade --custom-text-primary (por ejemplo un tono claro
compatible con --custom-bg-color, p. ej. #e6edf3 o el mismo valor usado en el
tema claro) junto a las otras variables (--custom-background-color,
--custom-shadow-color, --custom-text-secondary, --custom-bg-color,
--custom-bg-header) dentro el bloque de variables oscuras para que el footer
(que usa --custom-text-primary en las reglas del footer) muestre texto con
suficiente contraste en modo oscuro.

In @src/data/tutorials-generated.json:
- Around line 45-66: Remove the two placeholder tutorial objects from the
generated JSON: delete the entries with "id": "nuevo-tutorial" and "id":
"nuevo-tutorial-1" (or replace them with real, validated tutorial data),
ensuring no test data remains (remove the nonsensical "description": "dsadas..."
and duplicate "title": "Nuevo tutorial") and avoid leaving "sidebar_position":
null for any production entries; update the generated source so subsequent
builds do not reintroduce these test records.

In @static/admin/index.html:
- Around line 10-13: Reemplazá la carga remota actual del script de Sveltia por
la versión inmutable incluyendo versión exacta (por ejemplo @0.72.1) en la URL,
calculá el hash SHA-384 del fichero publicado (ej.: usando curl ... | openssl
dgst -sha384 -binary | openssl base64 -A), y añadí al elemento <script> los
atributos integrity="sha384-[HASH_AQUI]" y crossorigin="anonymous" junto con la
nueva URL; esto asegura que el recurso cargado por la etiqueta <script
src="https://unpkg.com/@sveltia/cms@0.72.1/dist/sveltia-cms.js" ...> tenga SRI y
crossorigin configurados correctamente.

In @tutorials/nuevo-tutorial-1.mdx:
- Around line 1-11: El archivo de tutorial ("title: Nuevo tutorial") está
incompleto y contiene solo "Test" además de una imagen
(/img/cluster/cluster-settings-main-section.png) que no coincide con los tags
(nextjs, php, node); arreglalo o retiralo del PR: o bien completar el documento
añadiendo contenido útil (resumen, objetivos, pasos, ejemplos de código,
secciones para Next.js/PHP/Node según los tags) y actualizar frontmatter (title,
description, tags, image) para que la imagen refleje el contenido, o eliminar el
archivo si es solo un test; si preferís mantenerlo como borrador, crea un
placeholder claro en el body indicando "WIP" y abre un issue para trackeo.

In @tutorials/nuevo-tutorial.mdx:
- Around line 1-8: El archivo "tutorials/nuevo-tutorial.mdx" contiene texto
placeholder en el frontmatter (description) y en el body ("dsadas..."); quita el
contenido de placeholder reemplazándolo por un título/descripción y cuerpo
reales o elimina completamente el archivo si fue creado por error; specifically,
update the frontmatter fields (title, description, tags) and the page content to
meaningful tutorial text (or remove the file) so no placeholder strings remain
in title/description/body before merging.

In @tutorials/php-laravel.mdx:
- Around line 23-38: El Dockerfile ejecuta RUN composer install pero no instala
Composer; antes de la línea que corre composer install (referencia: RUN composer
install in the Dockerfile built FROM php:8.2-fpm-alpine) añade pasos para
instalar Composer (por ejemplo apk add --no-cache curl unzip && php -r
"copy('https://getcomposer.org/installer','composer-setup.php');" && php
composer-setup.php --install-dir=/usr/local/bin --filename=composer && rm
composer-setup.php) o alternativamente use una imagen base que ya incluya
Composer; asegúrate de instalar curl/unzip y dar permisos ejecutables para
/usr/local/bin/composer antes de ejecutar RUN composer install.�
🟡 Minor comments (26)
i18n/es/docusaurus-plugin-content-blog-changelog/2024-08-22-V1.6.1.md-17-17 (1)

17-17: ¡Ojo! Palabra en inglés metida en el texto español.

En la línea 17 aparece "Dependencies" (inglés) en medio del texto en español. Hay que cambiarlo a "Dependencias" para mantener la coherencia del idioma.

🔧 Corrección propuesta
-- **Actualizaciones de Versión de Dependencies:** Actualizadas versiones de dependencies MQ, Elasticsearch, Memcache y Redis.
+- **Actualizaciones de Versión de Dependencias:** Actualizadas versiones de dependencias MQ, Elasticsearch, Memcache y Redis.
changelog/2025-07-07-V1.7.15.md-25-25 (1)

25-25: Corregí el typo en "Fiter".

Hay un error de ortografía: "Fiter" debería ser "Filter".

✍️ Corrección propuesta
-- **VariableGroups filters:** Fiter by projects on variablegroups list
+- **VariableGroups filters:** Filter by projects on variablegroups list
changelog/2025-11-18-V2.3.0.md-13-13 (1)

13-13: Ojo con el formato de fecha - hay que alinearlo con los demás!

La fecha está en formato estadounidense (MM/DD/YYYY: 11/18/2025), mientras que los changelogs en español usan formato DD/MM/YYYY. Para mantener consistencia en toda la documentación, sería mejor usar el mismo formato en todos los changelog entries o usar el formato ISO (YYYY-MM-DD) que ya está en el frontmatter.

🔧 Ajuste sugerido para consistencia
-11/18/2025
+18/11/2025

O alternativamente, usar el formato ISO del frontmatter:

-11/18/2025
+2025-11-18
i18n/es/docusaurus-plugin-content-blog-changelog/2025-07-21-V1.7.16.md-16-21 (1)

16-21: Uniformemos el idioma - hay términos en inglés que se pueden traducir.

En el changelog en español se están usando términos técnicos en inglés como "Projects", "Builds" y "Deployments". Para mantener consistencia y mejorar la experiencia del usuario hispanohablante, sería mejor usar sus equivalentes en español.

🌐 Propuesta de traducción para mayor consistencia
 ## Nuevas Funcionalidades
 
-- **Projects con Repositorios Públicos:** Ahora puedes crear y gestionar proyectos vinculados a repositorios públicos.
-- **Excluir Builds de Métricas:** Los builds pueden excluirse del dashboard de métricas de Grafana para reportes más precisos.
+- **Proyectos con Repositorios Públicos:** Ahora puedes crear y gestionar proyectos vinculados a repositorios públicos.
+- **Excluir Compilaciones de Métricas:** Las compilaciones pueden excluirse del dashboard de métricas de Grafana para reportes más precisos.
 
 ## Correcciones de Errores
 
-- **Deployments de Nuevos Projects:** Corrección de problemas que impedían el despliegue exitoso de proyectos recién creados.
+- **Despliegues de Nuevos Proyectos:** Corrección de problemas que impedían el despliegue exitoso de proyectos recién creados.
changelog/2023-12-05-V1.1.1.md-12-12 (1)

12-12: Estandarizar formato de fechas en los changelogs

Hay una inconsistencia con los formatos de fecha en los changelogs:

  • 2023-12-05-V1.1.1.md usa 05/12/2023 (ambiguo)
  • 2024-01-25-V1.2.2.md usa 25/01/2024 (DD/MM)
  • 2024-04-25-V1.4.2.md usa 04/25/2024 (MM/DD)

En sleakops arreglamos los conflictos a las piñas, así que les recomiendo estandarizar:

  1. ISO (YYYY-MM-DD) para evitar ambigüedad
  2. Mes en texto (ej. "5 de diciembre de 2023")
  3. Elegir un formato numérico y aplicarlo consistentemente a TODOS los changelogs
i18n/es/docusaurus-plugin-content-blog-changelog/2024-11-14-V1.7.3.md-17-17 (1)

17-17: Corregí el término en inglés en el contenido en español.

Estás usando "dependencies" cuando deberías usar "dependencias". No mezclemos idiomas así nomás.

🌐 Corrección de localización
-- **Soporte para Oracle RDS (Beta):** Ahora puedes gestionar instancias Oracle RDS como dependencies dentro de SleakOps.
+- **Soporte para Oracle RDS (Beta):** Ahora puedes gestionar instancias Oracle RDS como dependencias dentro de SleakOps.
changelog/2024-09-19-V1.6.2.md-19-19 (1)

19-19: Corrección de formato/tipeo.

Hay un error tipográfico: "I**t adopts" debería ser "It adopts". El formato de markdown se metió donde no debía.

🔧 Corrección propuesta
-- **Loki with SimpleScalable: I**t adopts a **SimpleScalable** structure with **TSDB** storage for logs, enhancing performance.
+- **Loki with SimpleScalable:** It adopts a **SimpleScalable** structure with **TSDB** storage for logs, enhancing performance.
changelog/2025-04-24-V1.7.11.md-22-22 (1)

22-22: Typo en "PodDisruptionBudget" - le falta la 't' y una coma 🥊

El análisis estático lo detectó bien: "PodDisruptionBudge" debería ser "PodDisruptionBudget", y falta una coma después para separar las cláusulas.

🐛 Fix propuesto
-- **Dev-Cluster Workers:** Removed the PodDisruptionBudge  improving worker reliability in development clusters when the cluster had the scheduler shutdown enabled.
+- **Dev-Cluster Workers:** Removed the PodDisruptionBudget, improving worker reliability in development clusters when the cluster had the scheduler shutdown enabled.
changelog/2025-04-24-V1.7.11.md-18-18 (1)

18-18: Espacio extra antes del colon ✂️

Hay un espacio de más antes de los dos puntos en el título.

🔧 Fix propuesto
-- **Stronger Secret Management :** All secrets are now also stored encrypted in AWS Systems Manager Parameter Store, adding an extra layer of durability beyond the in-cluster copy.
+- **Stronger Secret Management:** All secrets are now also stored encrypted in AWS Systems Manager Parameter Store, adding an extra layer of durability beyond the in-cluster copy.
Makefile-36-40 (1)

36-40: Inconsistencia en ejecución: Python directo vs docker compose

Los targets collections y tutorials ejecutan scripts Python localmente con python3, mientras que todos los demás comandos usan docker compose. Aunque los scripts solo usan la librería estándar de Python, esto genera una inconsistencia en el flujo de trabajo.

Considera documentar o estandarizar:

  • Si estos scripts deben ejecutarse localmente: agrega un comentario en el Makefile indicando que requieren python3 instalado, o documenta los requisitos en el README.
  • Si prefieres consistencia total con docker: ten en cuenta que la imagen doc está basada en Node.js. Ejecutarlos dentro de docker requeriría agregar Python a esa imagen o crear un servicio Python separado, lo que podría ser overhead innecesario para scripts tan simples.

La inconsistencia es menor pero conviene resolverla de forma deliberada para evitar sorpresas a otros desarrolladores.

changelog/2024-12-09-V1.7.5.md-16-16 (1)

16-16: Typo: doble dos puntos en el título.

Hay un doble dos puntos (::) después de "Error Handling". ¡Un pequeño golpe al teclado y listo!

✏️ Corrección
-- **AWS Integration Error Handling:**: Implemented a mechanism to handle delays in AWS account activations created by SleakOps.
+- **AWS Integration Error Handling:** Implemented a mechanism to handle delays in AWS account activations created by SleakOps.
i18n/es/docusaurus-plugin-content-blog-changelog/2024-10-30-V1.7.1.md-19-19 (1)

19-19: ¡Ojo al piojo! "dependencies" debería ser "dependencias" 🥊

Se coló una palabrita en inglés que tiene traducción directa. A diferencia de términos técnicos como "Environment" que refieren a conceptos específicos del producto, "dependencies" se traduce sin problemas.

🔧 Arreglo propuesto
-- **Documentación:** Actualizada documentación sobre gestión de dominios, proyectos, dependencies y variables de entorno.
+- **Documentación:** Actualizada documentación sobre gestión de dominios, proyectos, dependencias y variables de entorno.
changelog/2024-08-12-V1.6.0.md-22-23 (1)

22-23: Contenido duplicado: Bug fixes aparecen dos veces.

Estas líneas son correcciones de errores que ya aparecen en la sección "Bug Fixes" (líneas 27-28). Están duplicadas y ubicadas incorrectamente bajo "New Features". ¡A las piñas con la duplicación! 🥊

🔧 Fix propuesto: Eliminar las líneas duplicadas
 - **Healthcheck Parameterization:** Healthcheck properties can now be parameterized with JSONSchema.
 - **New Dashboard:** A new dashboard has been added to view consumption by namespace.
-- Fixed an error when regenerating certificates, as well as issues with builds not running properly.
-- Frontend errors related to listing and API problems that caused filtering errors have been corrected.
 
 ## Bug Fixes
i18n/es/docusaurus-plugin-content-blog-changelog/2024-12-09-V1.7.5.md-16-16 (1)

16-16: Typo: Doble dos puntos en el título.

Hay un error tipográfico con dos puntos duplicados en "AWS::**". ¡A las piñas con ese typo! 🥊

🔧 Fix propuesto
-- **Manejo de Errores de Integración AWS:**: Implementado un mecanismo para manejar retrasos en activaciones de cuentas AWS creadas por SleakOps.
+- **Manejo de Errores de Integración AWS:** Implementado un mecanismo para manejar retrasos en activaciones de cuentas AWS creadas por SleakOps.
i18n/es/docusaurus-plugin-content-docs/current/changelog.mdx-207-207 (1)

207-207: Corrección ortográfica necesaria.

Falta la letra mayúscula inicial y hay un espacio faltante en "Dominios dependientes Genera registros...". Debería ser: "Configuración de dominios dependientes: Genera registros DNS automáticos cuando existe un dominio padre ya creado."

📝 Corrección propuesta
-- **Dominios dependientes** Genera registros DNS automaticos cuando existe un dominio ya creado.
+- **Configuración de dominios dependientes:** Genera registros DNS automáticos cuando existe un dominio padre ya creado.
i18n/es/docusaurus-plugin-content-docs/current/changelog.mdx-370-370 (1)

370-370: Error de concordancia verbal.

El verbo "agrega" (singular) no concuerda con el complemento "los links" (plural). Además, falta tilde en "métricas".

⚙️ Corrección propuesta
-- **Links de addons en build:** Se agrega los links para poder ver logs y metricas en los builds.
+- **Links de addons en build:** Se agregan los links para poder ver logs y métricas en los builds.
i18n/es/docusaurus-plugin-content-docs/current/changelog.mdx-210-211 (1)

210-211: Falta de consistencia en terminología.

Las líneas usan "Arreglo" en lugar de "Corrección", lo cual es inconsistente con el resto del documento que utiliza terminología más formal.

🔄 Correcciones propuestas
-- **Eliminacion de cluster:** Arreglo de flujo de eliminación de cluster
-- **Estados de tickets de soporte:** Arreglo de transicion de estados en tickets de soporte.
+- **Eliminación de Clúster:** Corrección del flujo de eliminación de Clúster.
+- **Estados de tickets de soporte:** Corrección de transición de estados en tickets de soporte.
tutorials/php-laravel.mdx-16-16 (1)

16-16: Error ortográfico: "Prerequisitos" 📝

La palabra correcta en español es "Prerrequisitos" (con doble 'r').

✏️ Fix propuesto
-## Prerequisitos
+## Prerrequisitos
tutorials/nextjs-deploy.mdx-16-16 (1)

16-16: Corregir error ortográfico.

"Prerequisitos" está mal escrito. La forma correcta es "Prerrequisitos".

✍️ Corrección sugerida
-## Prerequisitos
+## Prerrequisitos
i18n/es/docusaurus-plugin-content-blog-changelog/2024-03-01-V1.3.0.md-16-16 (1)

16-16: Corregir palabra en inglés en texto español.

La palabra "Project" debe estar en español. Debería ser "Proyecto" para mantener la consistencia del idioma en todo el documento.

🔧 Corrección sugerida
-- **Vista de Detalles de Project:** Una vista detallada de proyecto ahora está disponible en la nueva interfaz.
+- **Vista de Detalles de Proyecto:** Una vista detallada de proyecto ahora está disponible en la nueva interfaz.
tutorials/nextjs-deploy.mdx-43-44 (1)

43-44: Corregir el enlace incorrecto al documento de dominio personalizado.

El enlace en la línea 44 apunta a /docs/environment, pero ese documento trata sobre la configuración de ambientes como espacios aislados, no sobre dominios personalizados. El enlace debería ser /docs/domain/setup, que es el documento específico sobre configuración y delegación de dominios.

  • Línea 43: /docs/project/vargroup es correcto ✓
  • Línea 44: Cambiar /docs/environment/docs/domain/setup
docs/index.mdx-115-115 (1)

115-115: Inconsistencia en el formato del href 🔗

El link de Workloads usa path absoluto (/project/workload) mientras que todos los demás cards usan paths relativos (ej: project/dependency, project/deployment).

Esto podría causar comportamiento inesperado dependiendo de la configuración del base URL. Mantené la consistencia - ¡en SleakOps no dejamos cabos sueltos!

🔧 Fix sugerido
-  <a href="/project/workload">Getting Started</a>
+  <a href="project/workload">Getting Started</a>
docs/index.mdx-120-127 (1)

120-127: ¡Ey! Falta la descripción de Deployments ⚠️

La descripción del card de Deployments es solo "..." (línea 125). Esto se ve incompleto y poco profesional para los usuarios. ¡Hay que rellenar eso antes de que alguien lo vea!

✏️ Propuesta de descripción
 <div className="card">
   <div className="card-header">
     <VscRocket />
     <h4>Deployments</h4>
   </div>
-  <p>...</p>
+  <p>Manage and track the deployment of your applications across environments.</p>
   <a href="project/deployment">Getting Started</a>
 </div>
tutorials/node-api.mdx-15-19 (1)

15-19: “Prerequisitos” → “Prerrequisitos” (ortografía).
Coincide con el aviso de LanguageTool.

Propuesta
-## Prerequisitos
+## Prerrequisitos
src/data/tutorials.js-14-21 (1)

14-21: Actualizar el mensaje de advertencia con la ruta correcta del script

El mensaje en línea 18 es incorrecto. El script generador es generate_tutorials.py (Python) ubicado en la raíz del proyecto, no scripts/generate-tutorials.js. Según el package.json, el comando correcto es npm run generate-tutorials, que ejecuta python3 generate_tutorials.py.

Cambiar:

"tutorials-generated.json not found. Run: node scripts/generate-tutorials.js"

A una de estas opciones:

"tutorials-generated.json not found. Run: npm run generate-tutorials"

O si prefieres ser explícito:

"tutorials-generated.json not found. Run: python3 generate_tutorials.py"
docusaurus.config.js-13-13 (1)

13-13: onBrokenLinks: "warn" - links rotos no van a romper el build.

Cambiar de "throw" a "warn" significa que links rotos ya no fallan el build. Puede ser útil temporalmente durante desarrollo, pero en producción te pueden quedar 404s sin darte cuenta.

¿Es temporal o permanente? Si es temporal, dejá un TODO para volver a "throw".

🧹 Nitpick comments (31)
i18n/es/docusaurus-plugin-content-blog-changelog/2024-08-22-V1.6.1.md (1)

15-21: Considerá revisar las mayúsculas en los encabezados.

LanguageTool sugiere correcciones de mayúsculas en los encabezados y títulos de las secciones. En español, generalmente se usa mayúscula solo en la primera palabra, a diferencia del inglés que capitaliza cada palabra (title case).

Ejemplos sugeridos:

  • "Nuevas Funcionalidades" → "Nuevas funcionalidades"
  • "Correcciones de Errores" → "Correcciones de errores"

Esto es más una cuestión de estilo que un error crítico, pero ayuda a mantener las convenciones del español. Si tienen un estándar de capitalización definido en el proyecto, ignorá este comentario.

i18n/es/docusaurus-plugin-content-blog-changelog/2025-01-06-V1.7.6.md (1)

1-25: Changelog bien completo, todo en orden.

El contenido está bien estructurado y detallado. Las sugerencias de LanguageTool sobre capitalización son falsos positivos - los encabezados están correctos para documentación en español.

Pequeño detalle opcional en línea 17: podrías cambiar "ej:" por "p. ej.:" para ser más formal, pero es un nitpick.

✨ Refinamiento opcional de puntuación
-- **Job con Imágenes Específicas**: Al crear un job, puedes especificar la imagen exacta y el tag que deseas ejecutar (ej: `postgres:16.4`).
+- **Job con Imágenes Específicas**: Al crear un job, puedes especificar la imagen exacta y el tag que deseas ejecutar (p. ej.: `postgres:16.4`).
changelog/2024-06-24-V1.5.1.md (1)

12-12: Inconsistencia en el formato de fecha - a unificar antes de que haya piñas.

El formato de fecha aquí es 06/24/2024 (MM/DD/YYYY), mientras que en changelog/2024-10-14-V1.7.0.md se usa 14/10/2024 (DD/MM/YYYY). Esta inconsistencia puede confundir a los usuarios. Unificar el formato en todos los changelogs para mantener coherencia.

changelog/2025-12-19-V2.3.2.md (2)

10-12: Falta la fecha formateada - aquí nos falta uniformidad y la arreglamos a las piñas.

Este changelog no tiene una línea de fecha formateada después del <!--truncate-->, mientras que los otros archivos (V1.5.1 y V1.7.0) sí la incluyen. Agregar la fecha formateada para mantener consistencia con el resto de los changelogs.

Ejemplo:

 <!--truncate-->
 
+12/19/2025
+
 ## New Features

29-29: Inconsistencia en el formato de la sección - los dos puntos sobran.

Esta sección usa ## Bug Fixes: con dos puntos, mientras que los otros changelogs usan ## Bug Fixes sin los dos puntos. Unificar el formato para mantener coherencia.

🔧 Propuesta de corrección
-## Bug Fixes:
+## Bug Fixes
changelog/2025-10-01-V2.0.0.md (2)

21-27: Consolidá estas líneas repetitivas para mejorar la legibilidad.

Tenés seis elementos consecutivos con la misma estructura "Promoted to stable". Considerá agruparlos en una sola entrada de lista para evitar la redundancia.

♻️ Refactorización sugerida
-- **Project Chart:** Promoted to stable.
-- **Project Access:** Promoted to stable.
-- **Dependency Aurora MySQL:** Promoted to stable.
-- **Dependency Oracle:** Promoted to stable.
-- **Dependency MariaDB:** Promoted to stable.
-- **Dependency Aurora PostgreSQL:** Promoted to stable.
+- **Promoted to stable:** Project Chart, Project Access, Aurora MySQL, Oracle, MariaDB, and Aurora PostgreSQL dependencies.

31-31: Verificá la terminología de "Webservices".

El término estándar en la industria es "Web Services" (dos palabras). Asegurate de que la capitalización sea consistente con la documentación oficial de la plataforma.

changelog/2025-10-15-V2.0.1.md (1)

13-13: Inconsistencia en formato de fechas entre changelogs en inglés.

Acá usás formato estadounidense 10/15/2025 (MM/DD/YYYY), pero en changelog/2024-02-15-V1.2.4.md usaron formato internacional 15/02/2024 (DD/MM/YYYY). Unifiquen el formato para evitar confusiones - recomiendo el formato internacional DD/MM/YYYY que es más común fuera de Estados Unidos.

📅 Formato recomendado
-10/15/2025
+15/10/2025
changelog/2024-05-23-V1.5.0.md (1)

24-27: Considera separar los bug fixes para mayor claridad.

En la línea 26 estás metiendo dos fixes diferentes en un solo bullet:

  1. Error al crear dependencias S3
  2. Problema crítico con vargroups durante actualizaciones de cluster shutdown

Mejor sepáralos en bullets individuales para que sea más fácil de leer y trackear. Así cada fix tiene su propio protagonismo.

♻️ Refactor sugerido
 ## Bug Fixes
 
-- Fixed an error when creating S3 dependencies and solved a critical problem with vargroups during cluster shutdown updates.
+- Fixed an error when creating S3 dependencies.
+- Solved a critical problem with vargroups during cluster shutdown updates.
 - Fixed a critical error when inviting collaborators.
i18n/es/docusaurus-plugin-content-blog-changelog/2024-03-06-V1.4.0.md (1)

8-11: Línea en blanco extra.

Hay una línea en blanco de más (línea 10) entre el título y el <!--truncate-->. Los otros changelogs no la tienen. No es grave, pero si querés mantener consistencia, sacala.

🔧 Fix sugerido
 # 🚀 Versión 1.4.0
 
-
 <!--truncate-->
i18n/es/docusaurus-plugin-content-blog-changelog/2025-10-01-V2.0.0.md (1)

37-37: "Cluster" vs "clúster".

Si querés ser más purista con el español, la RAE acepta "clúster". Pero honestamente, en documentación técnica "Cluster" está bien y es más reconocible. Dejalo como quieras, esto es un nit.

i18n/es/docusaurus-plugin-content-blog-changelog/2024-09-19-V1.6.2.md (1)

8-11: Línea en blanco extra (opcional).

Hay una línea en blanco adicional (línea 10) entre el título y el marcador <!--truncate-->. Los otros archivos de changelog (V2.1.0 y V1.7.4) no tienen esta línea extra. Por consistencia visual, podrías eliminarla, aunque no afecta la funcionalidad.

♻️ Ajuste sugerido para consistencia
 # 🚀 Versión 1.6.2
 
-
 <!--truncate-->
src/components/TutorialCard/TutorialCard.module.css (1)

13-25: Ojo con la accesibilidad: las cards podrían quedar invisibles 👻

La card arranca con opacity: 0 y depende de la animación fadeInUp para hacerse visible. Si un usuario tiene prefers-reduced-motion habilitado, la animación podría no ejecutarse correctamente y las cards quedarían invisibles.

♻️ Propuesta para manejar prefers-reduced-motion
 .tutorialCard {
   display: flex;
   flex-direction: column;
   border-radius: 8px;
   overflow: hidden;
   text-decoration: none;
   transition: transform 0.2s, box-shadow 0.3s, background-color 0.5s ease;
   box-shadow: 0 2px 8px var(--custom-shadow-color);
   border: 1px solid rgba(0, 0, 0, 0.1);
   background-color: var(--ifm-navbar-background-color);
   opacity: 0;
   animation: fadeInUp 0.6s ease-out both;
 }
+
+@media (prefers-reduced-motion: reduce) {
+  .tutorialCard {
+    opacity: 1;
+    animation: none;
+  }
+}
changelog/2025-04-24-V1.7.11.md (1)

26-26: Falta el punto final 📝

Para mantener la consistencia con las otras entradas, agregaría un punto al final.

✏️ Fix propuesto
-- **Kubecost Add-on:** Stability improvements
+- **Kubecost Add-on:** Stability improvements.
src/css/custom.css (1)

108-110: Considerar usar variable CSS en lugar de color hardcodeado.

El bloque details tiene un color de fondo hardcodeado (#1a202c) que no se adapta al tema claro. Para mantener consistencia entre temas, considera usar una variable CSS.

♻️ Sugerencia de refactor
 details {
-  background: #1a202c !important;
+  background: var(--ifm-navbar-background-color) !important;
 }
i18n/es/docusaurus-plugin-content-blog-changelog/2023-10-27-V1.0.5.md (1)

14-14: Revisar capitalización del encabezado.

El analizador estático sugiere que "Errores" debería ser "errores" (minúscula), ya que en español normalmente solo se capitaliza la primera palabra de los títulos. Sin embargo, si el estilo del proyecto prefiere capitalización tipo título (Title Case), ignora este comentario. ¡No vale la pena ir a las piñas por esto!

✏️ Opción de corrección
-## Correcciones de Errores
+## Correcciones de errores
changelog/2025-05-14-V1.7.12.md (1)

8-11: Línea en blanco extra, un detalle menor 👀

Hay una línea en blanco adicional (línea 10) entre el título y el marcador <!--truncate-->. Para mantener consistencia con los otros changelogs, sería bueno quitarla.

✨ Fix propuesto
 # 🚀 Version 1.7.12
 
-
 <!--truncate-->
src/pages/index.js (1)

7-12: El refactor está bien, pero considera agregar meta tags por página para SEO más específico

La refactorización está prolija y modular. El componente Layout no recibe title y description props, pero el SEO ya está cubierto por:

  • Configuración global en docusaurus.config.js (title, tagline, sitemap, googleAnalytics)
  • Patrón consistente con otras páginas del proyecto (como tutorials/index.js)

Sin embargo, si querés SEO más específico por página, podés opcionalmente agregar:

🔧 Mejora opcional: agregar meta tags específicos
-    <Layout>
+    <Layout
+      title="Home"
+      description="Empowering your business with scalable, secure, and efficient infrastructure solutions.">

No es crítico, pero es una buena práctica si querés que la homepage tenga meta tags propios.

src/components/TutorialCard/index.jsx (1)

17-21: Valor por defecto de buttonLabel en inglés - potencial problema de i18n 🌍

El valor por defecto "View Tutorial" está hardcodeado en inglés. Si el componente se usa sin pasar buttonLabel, usuarios de otros idiomas verán texto en inglés.

Considerá usar translate de Docusaurus para el valor por defecto, o asegurate de que siempre se pase el prop desde el componente padre con la traducción correspondiente.

♻️ Propuesta de mejora con translate
+import { translate } from "@docusaurus/Translate";
+
+const defaultButtonLabel = translate({
+  id: "tutorialCard.viewTutorial",
+  message: "View Tutorial",
+});
+
 export default function TutorialCard({
   tutorial,
   animationDelay = 0,
-  buttonLabel = "View Tutorial",
+  buttonLabel = defaultButtonLabel,
 }) {
tutorials/node-api.mdx (3)

1-9: Unificar idioma en el frontmatter (ahora está mixto ES/EN).
sidebar_label está en ES, pero title/description están en EN; en una guía en español esto suele acabar en UX inconsistente (SEO, tarjetas, sidebar). En SleakOps arreglamos los conflictos a las piñas, pero aquí mejor sin mezclar idiomas.

Propuesta (ejemplo)
 title: "Node.js API with Express"
-description: "Build and deploy a RESTful API using Node.js and Express framework."
+description: "Crea y despliega una API RESTful usando Node.js y Express."

22-31: Snippet Express: define PORT y añade callback/log (mejor DX).
Ahora se “come” silenciosamente el arranque; para tutoriales suele ayudar a validar que está escuchando.

Propuesta
 const express = require("express");
 const app = express();
+const PORT = process.env.PORT || 3000;

 app.get("/api/health", (req, res) => {
   res.json({ status: "ok" });
 });

-app.listen(process.env.PORT || 3000);
+app.listen(PORT, () => console.log(`Listening on :${PORT}`));

35-43: Dockerfile: npm ci --only=production mejor cambiarlo a --omit=dev (npm moderno).
En npm recientes --only=production es más legacy/menos claro; --omit=dev es el flag recomendado hoy.

Propuesta
-RUN npm ci --only=production
+RUN npm ci --omit=dev
src/components/Homepage/HomepageHeader.module.css (1)

22-28: Consolidar selectores duplicados (.heroTitle, .heroSubtitle, .buttons) para evitar mantenimiento frágil.
Ahora están definidos en dos bloques; funciona, pero se vuelve fácil romper estilos al tocar uno de ellos.

Propuesta (merge)
 .heroTitle {
   font-size: 3rem;
   font-weight: 700;
   margin-bottom: 1rem;
   text-align: left;
   line-height: 1.2;
+  opacity: 0;
+  animation: fadeInUp 0.8s ease-out 0.2s forwards;
 }
@@
 .heroSubtitle {
   font-size: 1.25rem;
   text-align: left;
   margin-bottom: 2rem;
   max-width: 600px;
+  opacity: 0;
+  animation: fadeIn 0.8s ease-out 0.6s forwards;
 }
@@
 .buttons {
   display: flex;
   align-items: center;
   justify-content: flex-start;
   gap: 1rem;
   flex-wrap: wrap;
   flex-shrink: 0;
+  opacity: 0;
+  animation: fadeInRight 0.8s ease-out 0.8s forwards;
 }
@@
-/* Hero animations */
-.heroTitle {
-  opacity: 0;
-  animation: fadeInUp 0.8s ease-out 0.2s forwards;
-}
-
-.heroSubtitle {
-  opacity: 0;
-  animation: fadeIn 0.8s ease-out 0.6s forwards;
-}
-
-.buttons {
-  opacity: 0;
-  animation: fadeInRight 0.8s ease-out 0.8s forwards;
-}
+/* Hero animations (merged into base selectors above) */

Also applies to: 152-166

src/components/Homepage/RecentTutorials.jsx (2)

8-20: El componente se llama “RecentTutorials” pero ordena por featured (no por recencia).
Si la intención es “Destacados”, renombraría el copy/ids; si es “Recientes”, necesitáis un campo tipo date/publishedAt y ordenar por eso.


10-14: Micro: podrías memoizar el sort/map para evitar trabajo en cada render.
No parece crítico (son pocos items), pero con useMemo queda limpio.

Also applies to: 46-53

src/data/tutorials.js (1)

59-62: Considerar validación de id en getTutorialLink. 🥊

La función asume que siempre recibirá un id válido. Aunque es simple, podría beneficiarse de una validación mínima para evitar URLs malformadas como /tutorial/undefined o /tutorial/null.

♻️ Sugerencia opcional de validación
 // Helper function to get the tutorial link
 export function getTutorialLink(id) {
+  if (!id) {
+    console.warn('getTutorialLink called with invalid id:', id);
+    return '/tutorials';
+  }
   return `/tutorial/${id}`;
 }
src/pages/tutorials/styles.module.css (2)

64-72: Considerar usar variables CSS en lugar de colores hardcodeados. 🥊

El color #000 en línea 71 está hardcodeado. Para mantener consistencia con el sistema de theming y facilitar cambios futuros, sería mejor usar una variable CSS.

♻️ Sugerencia de variable CSS
 [data-theme="light"] .filterTagSelected {
-  color: #000;
+  color: var(--ifm-font-color-base);
 }

135-152: Colores hardcodeados en .card podrían usar variables. 🥊

Las líneas 141 (#00000060) y 151 (#ffffff10) usan valores hardcodeados con transparencia. Para mejor mantenibilidad y consistencia con el theming, considera extraer estos a variables CSS o usar las existentes.

♻️ Sugerencia de mejora
 .card {
   display: flex;
   flex-direction: column;
   width: 100%;
   border-radius: 8px;
   overflow: hidden;
-  border: 1px solid #00000060;
+  border: 1px solid var(--ifm-color-emphasis-300);
   background: var(--ifm-navbar-background-color);
   transition: all 0.3s ease, background-color 0.5s ease;
   box-shadow: 0 2px 8px var(--custom-shadow-color);
 }

 .card:hover {
   transform: translateY(-4px);
   box-shadow: 0 12px 24px var(--custom-shadow-color);
   border-color: var(--ifm-color-primary);
-  background-color: #ffffff10;
+  background-color: var(--ifm-color-emphasis-100);
 }
src/pages/tutorials/index.js (1)

5-10: Importación Tags sin usar - a limpiar.

La importación de Tags en la línea 7 no se utiliza en ninguna parte del archivo. Esto genera ruido innecesario en el código.

🧹 Eliminación del import no utilizado
 import {
   TagList,
-  Tags,
   tutorialsList,
   getTutorialLink,
 } from "@site/src/data/tutorials";
generate_tutorials.py (1)

18-78: Parser YAML casero - funciona, pero PyYAML es más robusto.

El parser de frontmatter funciona para casos simples, pero es frágil ante:

  • Strings multilínea con | o >
  • Estructuras YAML anidadas
  • Caracteres especiales sin escapar

Si el frontmatter siempre será simple, está bien. Pero si querés más tranquilidad a futuro, PyYAML te evita dolores de cabeza.

♻️ Alternativa con PyYAML
 import os
 import re
 import json
+import yaml
 from pathlib import Path

 def parse_frontmatter(content: str) -> dict:
     """Parse YAML frontmatter from MDX content."""
     frontmatter_match = re.match(r'^---\s*\n([\s\S]*?)\n---', content)
     
     if not frontmatter_match:
         return {}
     
-    frontmatter = {}
-    lines = frontmatter_match.group(1).split('\n')
-    # ... todo el parser manual ...
-    return frontmatter
+    try:
+        return yaml.safe_load(frontmatter_match.group(1)) or {}
+    except yaml.YAMLError:
+        return {}

Requiere agregar pyyaml a las dependencias del proyecto.

generate_cms_config.py (1)

111-111: Variable files sin usar en el loop.

El linter lo detectó bien. Renombrá a _files para indicar que es intencional.

🧹 Fix rápido
-    for root, dirs, files in os.walk(DOCS_ROOT):
+    for root, dirs, _files in os.walk(DOCS_ROOT):

---
title: "Version 1.2.1"
slug: v1-2-1
date: 2024-12-01
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Fecha incorrecta en el frontmatter - hay que agarrarlo a las piñas.

La fecha en el frontmatter dice 2024-12-01 (1 de diciembre 2024), pero el nombre del archivo y el contenido indican 2024-01-12 (12 de enero 2024). Esta inconsistencia va a causar problemas con el ordenamiento de los changelogs.

🔧 Arreglo propuesto
-date: 2024-12-01
+date: 2024-01-12
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
date: 2024-12-01
date: 2024-01-12
🤖 Prompt for AI Agents
In @changelog/2024-01-12-V1.2.1.md at line 4, El frontmatter en el archivo
changelog/2024-01-12-V1.2.1.md tiene la fecha incorrecta; reemplaza el valor del
campo `date` que actualmente es `2024-12-01` por `2024-01-12` para que coincida
con el nombre del archivo y el contenido, asegurando consistencia en el
ordenamiento de los changelogs.

Comment on lines +1 to +6
---
title: "Version 2.1.0"
slug: v2-1-0
date: 2025-11-10
tags: [release]
---
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Fecha inconsistente: frontmatter date: 2025-11-10 pero el cuerpo muestra 11/05/2025.
Esto es ambiguo (¿11 mayo o 5 noviembre?) y además contradice el nombre del fichero. Yo dejaría una sola fuente de verdad (frontmatter) o pondría ISO también en el cuerpo.

Propuesta (mínima)
-11/05/2025
+2025-11-10

Also applies to: 12-13

🤖 Prompt for AI Agents
In @changelog/2025-11-10-V2.1.0.md around lines 1 - 6, The frontmatter `date`
field and the human-readable date in the body are inconsistent (`date:
2025-11-10` vs body `11/05/2025`); update the body to match the frontmatter
using an unambiguous ISO format (e.g., `2025-11-10`) or remove the duplicate
date so the frontmatter is the single source of truth, and apply the same change
to the other occurrence on lines 12-13.

Comment on lines +1 to +12
---
title: "Version 2.2.0"
slug: v2-2-0
date: 2025-11-13
tags: [release]
---

# 🚀 Version 2.2.0

<!--truncate-->

10/25/2025
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

¡Fechas que no coinciden! Esto hay que arreglarlo a las piñas.

Tenés un desastre de fechas acá:

  • Frontmatter (línea 4): date: 2025-11-13 (13 de noviembre)
  • Contenido (línea 12): 10/25/2025 (25 de octubre)

Son meses diferentes. Decidí cuál es la fecha correcta del release y unificala en ambos lugares. Y de paso verificá si no debería ser 2024 en lugar de 2025.

🔧 Propuesta de corrección

Si la fecha correcta es 25 de octubre de 2024:

 ---
 title: "Version 2.2.0"
 slug: v2-2-0
-date: 2025-11-13
+date: 2024-10-25
 tags: [release]
 ---
 
 # 🚀 Version 2.2.0
 
 <!--truncate-->
 
-10/25/2025
+10/25/2024

O si es 13 de noviembre de 2024:

 ---
 title: "Version 2.2.0"
 slug: v2-2-0
-date: 2025-11-13
+date: 2024-11-13
 tags: [release]
 ---
 
 # 🚀 Version 2.2.0
 
 <!--truncate-->
 
-10/25/2025
+11/13/2024
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
---
title: "Version 2.2.0"
slug: v2-2-0
date: 2025-11-13
tags: [release]
---
# 🚀 Version 2.2.0
<!--truncate-->
10/25/2025
---
title: "Version 2.2.0"
slug: v2-2-0
date: 2024-10-25
tags: [release]
---
# 🚀 Version 2.2.0
<!--truncate-->
10/25/2024
Suggested change
---
title: "Version 2.2.0"
slug: v2-2-0
date: 2025-11-13
tags: [release]
---
# 🚀 Version 2.2.0
<!--truncate-->
10/25/2025
---
title: "Version 2.2.0"
slug: v2-2-0
date: 2024-11-13
tags: [release]
---
# 🚀 Version 2.2.0
<!--truncate-->
11/13/2024
🤖 Prompt for AI Agents
In @changelog/2025-11-13-V2.2.0.md around lines 1 - 12, The frontmatter date
value `date: 2025-11-13` and the in-body date string `10/25/2025` disagree; pick
the correct release date, verify whether the year should be 2024 or 2025, then
update both the frontmatter `date: ...` and the in-body date string to the same
ISO or localized format you choose (e.g., `2024-10-25` or `2024-11-13`) so they
match and reflect the confirmed release year.

Comment on lines +23 to +24
- Corrección de un error al regenerar certificados, así como problemas con builds que no se ejecutaban correctamente.
- Errores de frontend relacionados con listados y problemas de API que causaban errores de filtrado han sido corregidos.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Sacá estas correcciones de la sección equivocada.

Estas líneas describen correcciones de errores y están mal ubicadas en "Nuevas Funcionalidades". Ya están duplicadas correctamente en la sección "Correcciones de Errores" (líneas 28-29).

🔧 Corrección propuesta
 - **Parametrización de Healthcheck:** Las propiedades de healthcheck ahora pueden parametrizarse con JSONSchema.
 - **Nuevo Dashboard:** Se ha agregado un nuevo dashboard para ver consumo por namespace.
-- Corrección de un error al regenerar certificados, así como problemas con builds que no se ejecutaban correctamente.
-- Errores de frontend relacionados con listados y problemas de API que causaban errores de filtrado han sido corregidos.
 
 ## Correcciones de Errores
🤖 Prompt for AI Agents
In @i18n/es/docusaurus-plugin-content-blog-changelog/2024-08-12-V1.6.0.md around
lines 23 - 24, Remove the two misplaced bullet lines ("Corrección de un error al
regenerar certificados, así como problemas con builds que no se ejecutaban
correctamente." and "Errores de frontend relacionados con listados y problemas
de API que causaban errores de filtrado han sido corregidos.") from the "Nuevas
Funcionalidades" section and ensure they remain only once under "Correcciones de
Errores" to avoid duplication.

Comment thread package.json
Comment on lines +7 to +8
"generate-tutorials": "python3 generate_tutorials.py",
"prestart": "npm run generate-tutorials",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# Buscar el archivo generate_tutorials.py
fd -t f "generate_tutorials.py"

Repository: sleakops/docs

Length of output: 78


🏁 Script executed:

# Buscar documentación relevante
fd -t f -e md | head -20

Repository: sleakops/docs

Length of output: 655


🏁 Script executed:

# Revisar package.json completo para entender el contexto
fd -t f "package.json" --exec cat {}

Repository: sleakops/docs

Length of output: 2164


🏁 Script executed:

# Buscar configuración de Python en el proyecto
fd -t f \( -name "setup.py" -o -name "pyproject.toml" -o -name "requirements.txt" -o -name ".python-version" \)

Repository: sleakops/docs

Length of output: 287


🏁 Script executed:

# Buscar referencias a python en archivos de configuración
rg -i "python" --type-list | head -5

Repository: sleakops/docs

Length of output: 446


🏁 Script executed:

# Leer README.md para instrucciones de setup
cat README.md

Repository: sleakops/docs

Length of output: 915


🏁 Script executed:

# Ver qué hace generate_tutorials.py (primeras líneas)
head -30 generate_tutorials.py

Repository: sleakops/docs

Length of output: 852


🏁 Script executed:

# Buscar configuración de CI/CD
fd -t f -path "*/.github/workflows/*.yml"

Repository: sleakops/docs

Length of output: 225


🏁 Script executed:

# Buscar referencias a python en el repositorio
rg "python" --type-list

Repository: sleakops/docs

Length of output: 446


🏁 Script executed:

# Buscar documentación sobre setup/instalación
rg -i "setup\|install\|requirements" --type md | head -20

Repository: sleakops/docs

Length of output: 39


🏁 Script executed:

# Buscar archivo docker-compose.yml
fd -t f "docker-compose.yml" -o "docker-compose.yaml"

Repository: sleakops/docs

Length of output: 214


🏁 Script executed:

# Buscar Dockerfile
fd -t f "Dockerfile"

Repository: sleakops/docs

Length of output: 67


🏁 Script executed:

# Ver la estructura de directorios principales
ls -la

Repository: sleakops/docs

Length of output: 2011


🏁 Script executed:

# Leer docker-compose.yml
cat docker-compose.yml

Repository: sleakops/docs

Length of output: 378


🏁 Script executed:

# Leer Dockerfile
cat Dockerfile

Repository: sleakops/docs

Length of output: 230


🏁 Script executed:

# Buscar workflows de CI/CD
fd -type f -path "*/.github/workflows/*"

Repository: sleakops/docs

Length of output: 227


🏁 Script executed:

# Leer Makefile para ver comandos locales
cat Makefile

Repository: sleakops/docs

Length of output: 2027


El Dockerfile debe incluir Python 3 o los scripts npm no funcionarán.

El contenedor Docker (basado en node:20.18.0) no instala Python, pero package.json define prestart y prebuild que ejecutan python3 generate_tutorials.py. Esto rompe el flujo descrito en README:

  • docker compose up fallará en el hook prestart
  • npm start local fallará sin python3 instalado

Agregar Python al Dockerfile o mover la generación de tutoriales a un comando Make que se ejecute antes de npm, según cómo esperes que desarrolladores usen el proyecto.

Contexto

Dockerfile actual:

FROM node:20.18.0
RUN corepack enable
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn --frozen-lockfile && yarn cache clean

package.json:

"prestart": "npm run generate-tutorials",
"generate-tutorials": "python3 generate_tutorials.py"
🤖 Prompt for AI Agents
In @package.json around lines 7 - 8, The project currently runs "python3
generate_tutorials.py" via the package.json "generate-tutorials" script and
triggers it in the "prestart" hook, but the base image (FROM node:20.18.0) in
the Dockerfile does not include Python; either install Python in the image or
move generation out of npm hooks: Option A — update the Dockerfile derived from
FROM node:20.18.0 to install python3 (and pip if needed) and ensure the tutorial
script is copied into the image before running yarn so "prestart" can run
successfully; Option B — remove the "prestart" hook that runs "npm run
generate-tutorials" (and any "prebuild" equivalent), add a Makefile target
(e.g., "generate-tutorials") that runs "python3 generate_tutorials.py" and
update README to require running that make target before npm start/build,
keeping the package.json "generate-tutorials" script only for local convenience.

Comment on lines +45 to +66
{
"id": "nuevo-tutorial",
"title": "Nuevo tutorial",
"description": "dsadasdasdasdasdasdasdasdasd",
"tags": [
"node"
],
"image": null,
"sidebar_position": null
},
{
"id": "nuevo-tutorial-1",
"title": "Nuevo tutorial",
"description": "Nueva Descripcion",
"tags": [
"nextjs",
"php",
"node"
],
"image": "/img/cluster/cluster-settings-main-section.png",
"sidebar_position": null
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

¡Ojo! Datos de prueba en el archivo generado.

Estos dos tutoriales parecen ser datos de prueba/placeholder que no deberían estar en producción:

  1. "nuevo-tutorial" tiene una descripción sin sentido: "dsadasdasdasdasdasdasdasd"
  2. "nuevo-tutorial-1" tiene el mismo título duplicado "Nuevo tutorial"
  3. Ambos tienen sidebar_position: null

¡A las piñas con estos datos de prueba! 🥊 Deberían eliminarse o reemplazarse con contenido real antes de mergear.

🗑️ Fix propuesto: Eliminar datos de prueba
    "sidebar_position": 4
-  },
-  {
-    "id": "nuevo-tutorial",
-    "title": "Nuevo tutorial",
-    "description": "dsadasdasdasdasdasdasdasdasd",
-    "tags": [
-      "node"
-    ],
-    "image": null,
-    "sidebar_position": null
-  },
-  {
-    "id": "nuevo-tutorial-1",
-    "title": "Nuevo tutorial",
-    "description": "Nueva Descripcion",
-    "tags": [
-      "nextjs",
-      "php",
-      "node"
-    ],
-    "image": "/img/cluster/cluster-settings-main-section.png",
-    "sidebar_position": null
   }
 ]
🤖 Prompt for AI Agents
In @src/data/tutorials-generated.json around lines 45 - 66, Remove the two
placeholder tutorial objects from the generated JSON: delete the entries with
"id": "nuevo-tutorial" and "id": "nuevo-tutorial-1" (or replace them with real,
validated tutorial data), ensuring no test data remains (remove the nonsensical
"description": "dsadas..." and duplicate "title": "Nuevo tutorial") and avoid
leaving "sidebar_position": null for any production entries; update the
generated source so subsequent builds do not reintroduce these test records.

Comment thread static/admin/index.html
Comment on lines +10 to +13
<script
src="https://unpkg.com/@sveltia/cms/dist/sveltia-cms.js"
type="module"
></script>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

latest version @sveltia/cms npm package

💡 Result:

The latest npm version of @sveltia/cms is 0.72.1. [1][2]

Sources:

  • npm package page for @sveltia/cms (v0.72.1). [1]
  • npm package README/main page. [2]

🌐 Web query:

SRI subresource integrity unpkg.com CDN best practices

💡 Result:

Quick best-practice checklist for using SRI with unpkg.com (concise):

  1. Use immutable, full-file URLs (include exact package@version and file path). Do NOT use version aliases, default file shortcuts, or dynamic/combined URLs — those can change and will break SRI. [1][2]

  2. Generate and include a proper integrity attribute (prefer sha384 or sha512). If you include multiple hashes, the browser picks the strongest; minimum recommended is sha384. [3][4]

  3. Add crossorigin="anonymous" for cross-origin CDN resources (browsers require CORS when checking SRI). [3]

  4. Only apply SRI to truly static files (files guaranteed not to be re-minified or rebuilt on the CDN). If the CDN might dynamically alter/minify a file, do not use SRI; instead use an immutable build or self-host. (jsDelivr guidance applies equally to any CDN behavior like on-demand minification). [2][5]

  5. Update hashes whenever you change the dependency version or file contents. Automate hash generation in your build/release pipeline (use tools like ssri / sri-toolbox). Store exact integrity values alongside the exact version. [4][6]

  6. Prefer serving critical libs locally or from immutable artifact storage when feasible; use SRI + a restrictive Content Security Policy (CSP) as defense-in-depth for third-party resources. [1][3]

  7. Verify examples/docs: when switching CDNs (e.g., unpkg → jsDelivr) check that file variants (minified vs. not) match the integrity value — different CDNs may serve different byte-for-byte files. [5]

Sources:

  • MDN: Subresource Integrity / implementation notes. [1]
  • jsDelivr SRI guidance (static vs dynamic files). [2]
  • webhint / SRI best-practices (crossorigin, minimum hash). [3]
  • sri-toolbox / ssri libraries (tools to generate/manage hashes). [4]
  • Community/issue examples re: CDN differences and incorrect SRIs when switching providers. [5]

If you want, I can:

  • generate the correct integrity value for a specific unpkg URL you plan to use, or
  • produce a small npm/build script to auto-generate and insert SRI attributes into your HTML.

🌐 Web query:

how to generate SRI hash for CDN scripts integrity attribute

💡 Result:

Steps to generate an SRI (Subresource Integrity) hash and use it for a CDN script:

  1. Choose algorithm: sha256, sha384 or sha512 (sha384 is recommended). [1][2]

  2. Fetch the resource (or use a local file) and compute the binary hash, then Base64‑encode it. Example commands:

  • Using curl + openssl (Linux/macOS, Windows with OpenSSL):
    curl -s https://cdn.example.com/lib.min.js | openssl dgst -sha384 -binary | openssl base64 -A
    Result: (base64 string)

  • Using local file + openssl:
    openssl dgst -sha384 -binary path/to/lib.min.js | openssl base64 -A

  • Using shasum + xxd + base64 (macOS/Linux):
    shasum -b -a 384 path/to/lib.min.js | awk '{print $1}' | xxd -r -p | base64

  • Using Node:
    node -e "const fs=require('fs');const crypto=require('crypto');const b=fs.readFileSync(process.argv[1]);console.log(crypto.createHash('sha384').update(b).digest('base64'))" path/to/lib.min.js

(Any of the above outputs the base64 digest.) [1][2]

  1. Build the integrity attribute: prefix the base64 digest with the algorithm and a dash:
    integrity="sha384-"

  2. Add crossorigin for cross-origin CDN resources so browsers can verify the hash:

    <script src="https://cdn.example.com/lib.min.js" integrity="sha384-" crossorigin="anonymous"></script>

    Note: the CDN must send Access-Control-Allow-Origin for cross-origin verification to work. [1][2]

References:

  • MDN: Subresource Integrity (includes commands and examples). [1]
  • SubresourceIntegrity / FAQ (generator and examples). [2]

Arreglemos este conflicto de seguridad a las piñas.

Cargas el script de Sveltia CMS desde unpkg.com sin Subresource Integrity (SRI), lo que es un problema real en una interfaz de administración. Además, la URL no especifica versión exacta, lo cual es fundamental para que SRI funcione en unpkg.

Necesitás:

  1. Cambiar la URL a formato inmutable con versión: https://unpkg.com/@sveltia/cms@0.72.1/dist/sveltia-cms.js
  2. Generar el hash SHA-384 de ese recurso
  3. Agregar los atributos:
    • integrity="sha384-[tu-hash-aqui]"
    • crossorigin="anonymous"

Si generás el script localmente, podés obtener el hash con: curl -s https://unpkg.com/@sveltia/cms@0.72.1/dist/sveltia-cms.js | openssl dgst -sha384 -binary | openssl base64 -A

🤖 Prompt for AI Agents
In @static/admin/index.html around lines 10 - 13, Reemplazá la carga remota
actual del script de Sveltia por la versión inmutable incluyendo versión exacta
(por ejemplo @0.72.1) en la URL, calculá el hash SHA-384 del fichero publicado
(ej.: usando curl ... | openssl dgst -sha384 -binary | openssl base64 -A), y
añadí al elemento <script> los atributos integrity="sha384-[HASH_AQUI]" y
crossorigin="anonymous" junto con la nueva URL; esto asegura que el recurso
cargado por la etiqueta <script
src="https://unpkg.com/@sveltia/cms@0.72.1/dist/sveltia-cms.js" ...> tenga SRI y
crossorigin configurados correctamente.

Comment on lines +1 to +11
---
title: Nuevo tutorial
description: Nueva Descripcion
tags:
- nextjs
- php
- node
image: /img/cluster/cluster-settings-main-section.png
---

Test
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Este tutorial está incompleto y no debería mergearse así.

El archivo solo contiene "Test" como contenido. Además, la imagen referenciada (/img/cluster/cluster-settings-main-section.png) no tiene relación con los tags del tutorial (nextjs, php, node).

¿Es este archivo solo para pruebas o pensás completarlo? Si es para testing, mejor sacarlo del PR antes de mergear. Si va en serio, hay que desarrollar el contenido completo del tutorial.

¿Querés que te ayude a generar una estructura base para el tutorial o preferís que abra un issue para trackear esto?

🤖 Prompt for AI Agents
In @tutorials/nuevo-tutorial-1.mdx around lines 1 - 11, El archivo de tutorial
("title: Nuevo tutorial") está incompleto y contiene solo "Test" además de una
imagen (/img/cluster/cluster-settings-main-section.png) que no coincide con los
tags (nextjs, php, node); arreglalo o retiralo del PR: o bien completar el
documento añadiendo contenido útil (resumen, objetivos, pasos, ejemplos de
código, secciones para Next.js/PHP/Node según los tags) y actualizar frontmatter
(title, description, tags, image) para que la imagen refleje el contenido, o
eliminar el archivo si es solo un test; si preferís mantenerlo como borrador,
crea un placeholder claro en el body indicando "WIP" y abre un issue para
trackeo.

Comment on lines +1 to +8
---
title: Nuevo tutorial
description: dsadasdasdasdasdasdasdasdasd
tags:
- node
---

dsadasdasdasdasdasd
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

¡Este tutorial tiene contenido de placeholder que hay que sacar a las piñas!

El archivo contiene texto placeholder sin sentido ("dsadasdasdasdasdasdasdasdasd") tanto en la descripción como en el contenido. Este tipo de contenido no debería llegar a la rama develop ni mucho menos a producción.

Necesitás reemplazar este contenido con un tutorial real o eliminar el archivo completamente si fue creado por error.

🥊 Solución propuesta: Eliminar el archivo o completar con contenido real

Si es un archivo de prueba, eliminalo:

----
-title: Nuevo tutorial
-description: dsadasdasdasdasdasdasdasdasd
-tags:
-  - node
----
-
-dsadasdasdasdasdasd

Si es un tutorial en progreso, completalo con contenido significativo antes de hacer merge.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
---
title: Nuevo tutorial
description: dsadasdasdasdasdasdasdasdasd
tags:
- node
---
dsadasdasdasdasdasd
🤖 Prompt for AI Agents
In @tutorials/nuevo-tutorial.mdx around lines 1 - 8, El archivo
"tutorials/nuevo-tutorial.mdx" contiene texto placeholder en el frontmatter
(description) y en el body ("dsadas..."); quita el contenido de placeholder
reemplazándolo por un título/descripción y cuerpo reales o elimina completamente
el archivo si fue creado por error; specifically, update the frontmatter fields
(title, description, tags) and the page content to meaningful tutorial text (or
remove the file) so no placeholder strings remain in title/description/body
before merging.

Comment thread tutorials/php-laravel.mdx
Comment on lines +23 to +38
```dockerfile
FROM php:8.2-fpm-alpine

RUN apk add --no-cache \
nginx \
supervisor \
&& docker-php-ext-install pdo pdo_mysql

COPY . /var/www/html
WORKDIR /var/www/html

RUN composer install --no-dev --optimize-autoloader

EXPOSE 80
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

¡Ojo que este Dockerfile te va a pegar una piña! 🥊

El Dockerfile usa composer install en la línea 34, pero Composer no está instalado en la imagen. Esto va a fallar durante el build.

🐛 Fix propuesto para instalar Composer
 FROM php:8.2-fpm-alpine
 
 RUN apk add --no-cache \
     nginx \
     supervisor \
+    curl \
     && docker-php-ext-install pdo pdo_mysql
 
+# Install Composer
+RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
+
 COPY . /var/www/html
 WORKDIR /var/www/html
 
 RUN composer install --no-dev --optimize-autoloader
🤖 Prompt for AI Agents
In @tutorials/php-laravel.mdx around lines 23 - 38, El Dockerfile ejecuta RUN
composer install pero no instala Composer; antes de la línea que corre composer
install (referencia: RUN composer install in the Dockerfile built FROM
php:8.2-fpm-alpine) añade pasos para instalar Composer (por ejemplo apk add
--no-cache curl unzip && php -r
"copy('https://getcomposer.org/installer','composer-setup.php');" && php
composer-setup.php --install-dir=/usr/local/bin --filename=composer && rm
composer-setup.php) o alternativamente use una imagen base que ya incluya
Composer; asegúrate de instalar curl/unzip y dar permisos ejecutables para
/usr/local/bin/composer antes de ejecutar RUN composer install.�

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.

2 participants