¿Qué hace create-github-action-workflow-specification?
Crea una especificación formal para un flujo de trabajo CI/CD existente de GitHub Actions, optimizada para el consumo por IA y el mantenimiento del flujo de trabajo.
Descripción
Esta habilidad analiza un archivo de flujo de trabajo de GitHub Actions (.yml) existente y genera un documento de especificación formal. Este documento detalla los jobs, pasos, triggers, variables de entorno, secretos y dependencias del flujo de trabajo de una manera estructurada y fácil de entender, tanto para desarrolladores como para agentes de IA.
Uso
- Proporciona la ruta al archivo de flujo de trabajo de GitHub Actions (por ejemplo,
.github/workflows/ci.yml). - La habilidad procesa el archivo y extrae toda la información relevante.
- Se genera un documento de especificación en formato Markdown que describe el flujo de trabajo de manera formal.
Plataformas Soportadas
- GitHub Actions
Cómo Funciona
- Análisis del Archivo YAML: La habilidad analiza el archivo YAML del flujo de trabajo para identificar todos los componentes clave (nombre, desencadenantes, jobs, pasos, etc.).
- Extracción de Metadatos: Extrae metadatos como el nombre del flujo de trabajo, los eventos que lo desencadenan, las variables de entorno y los secretos utilizados.
- Estructuración: Organiza la información extraída en una estructura formal de especificación que incluye secciones como
Resumen,Desencadenantes,Jobs,Pasos,Variables de Entorno,SecretosyDependencias. - Generación de Salida: Produce un documento Markdown con la especificación completa, listo para ser utilizado como referencia o entrada para otros procesos.
Ejemplo de Salida (parcial)
# Especificación del Flujo de Trabajo: CI
## Resumen
- **Nombre**: CI
- **Descripción**: Flujo de trabajo de integración continua que ejecuta pruebas y linting.
## Desencadenantes
- `push` en las ramas `main` y `develop`
- `pull_request` dirigido a `main`
## Jobs
### test
- **Ejecuta en**: `ubuntu-latest`
- **Pasos**:
- `actions/checkout@v3`
- `actions/setup-node@v3` (con node-version '18')
- `npm ci`
- `npm test`
- **Variables de Entorno**: `NODE_ENV=test`
Notas
- La especificación generada es puramente documental y no modifica ni reemplaza el archivo de flujo de trabajo original.
- Se recomienda mantener la especificación actualizada junto con el flujo de trabajo real para garantizar la coherencia.
- La habilidad está optimizada para ser utilizada tanto por desarrolladores humanos como por asistentes de IA para tareas de mantenimiento y depuración.