📖 Idiomas: 🇪🇸 Español | 🇬🇧 English
¡Hola developer 👋🏻! Este repositorio implementa un flujo en Azure Pipelines 🚀 que integra GitHub Copilot CLI 🤖 para generar código automáticamente a partir de Work Items 📋. El código del mismo fue utilizado para mi vídeo: 🚀 Lleva Azure DevOps al siguiente nivel con GitHub Copilot CLI 🤖
- ✅ Automatizar la creación de código mediante IA (GitHub Copilot)
- ✅ Integrar GitHub Copilot CLI con Azure DevOps
- ✅ Gestionar flujos de trabajo automáticos desde WebHooks
- ✅ Crear ramas de características, commits y Pull Requests de forma automática
- ✅ Vincular cambios con elementos de trabajo de Azure DevOps
El pipeline se activa mediante un WebHook desde Azure DevOps y realiza el siguiente flujo:
- 📖 Lee el elemento de trabajo - Obtiene la descripción y requisitos
- 🌿 Crea una rama de características -
copilot/<work-item-id> - 🤖 Ejecuta GitHub Copilot CLI - Genera el código automáticamente
- 💾 Realiza un commit - Guarda los cambios con mensajes descriptivos
- 🚀 Hace push de la rama - Sube los cambios al repositorio
- 📬 Crea un Pull Request - Abre la PR automáticamente
- 🔗 Vincula todo en Azure DevOps - Conecta la rama, commit y PR con el work item
- Azure DevOps - Gestión de work items y pipelines
- GitHub Copilot CLI - Generación automática de código con IA
- Bash Scripts - Automatización y orquestación
- Node.js 22.x - Runtime para Copilot CLI
- Python 3.x - Herramientas auxiliares
- MCP Servers - Context7 para documentación actualizada
├── azure-pipelines.yml # Definición del pipeline
├── mcp-config.json # Configuración de MCP Servers
├── .github/
│ └── copilot-instructions.md # Instrucciones para Copilot
└── scripts/ # Scripts de automatización
├── clone-target-repo.sh
├── create-pr-and-link.sh
├── push-branch.sh
└── ...
GH_TOKEN- Token de GitHub con el permiso Copilot RequestsAZURE_DEVOPS_PAT- Personal Access Token de Azure DevOps del usuario que simula GitHub Copilot CLICONTEXT7_API_KEY- API key para Context7 (documentación)COPILOT_VERSION- Versión de Copilot CLI a instalar, para evitar que deje de funcionar el flujo si algo importante ha cambiadoMODEL- Modelo de lenguaje a utilizar (ej. claude-sonnet-4)
El pipeline se activa mediante un WebHook configurado en Azure DevOps que dispara cuando se crean o actualizan elementos de trabajo.
Si quieres ver cómo se configura el mismo puedes echar un vistazo a mi artículo Cómo ejecutar un flujo de Azure Pipelines 🚀 cuando se crea un work item
El pipeline ejecuta los siguientes pasos de forma automática:
- 🚀 Iniciar Pipeline - Inicia el flujo de trabajo
- 🐍 Setup Python - Instala Python 3.x
- 📦 Instalar uv/uvx - Gestor de paquetes rápido
- ⚙️ Setup Node.js 22.x - Instala Node.js para Copilot CLI
- 🔍 Detectar Ruta NPM - Localiza la ruta global de NPM
- 📦 Cache de Paquetes NPM - Cachea paquetes globales para acelerar ejecuciones futuras
- 📦 Instalar Copilot CLI - Instala @github/copilot en la versión especificada
- 📋 Parsear Datos del Webhook - Extrae información del evento (ID, título, descripción, etc.)
- 🛎️ Clonar Repositorio - Clona el repositorio destino donde se generará el código
- 📖 Leer Detalles del Work Item - Obtiene toda la información del work item desde Azure DevOps
- 🚀 Inicializar Work Item - Cambia el estado a "Development" y prepara el work item
- ⚙️ Configurar MCP Servers - Copia la configuración de MCP (Context7, etc.) a ~/.config/
- 🧰 Verificar Acceso a MCP - Comprueba que todos los MCP servers están disponibles
- 🌿 Crear Rama de Características - Crea
copilot/<work-item-id> - 🤖 Ejecutar GitHub Copilot CLI - Genera el código basado en la descripción del work item
- Copia las instrucciones de Copilot al repositorio
- Ejecuta Copilot con el modelo especificado (ej: claude-sonnet-4)
- Registra todos los logs detallados
- 💾 Preparar y Realizar Commit - Crea un commit con el código generado
- Genera
copilot-summary.md(descripción de cambios) - Genera
commit-message.md(mensaje de commit)
- Genera
- 🚀 Push de la Rama - Sube la rama al repositorio remoto
- � Vincular Rama al Work Item - Vincula la rama de características con el work item
- 🔧 Actualizar Actividad del Work Item - Marca la actividad como "Development"
- 📬 Crear PR y Vincularla - Crea un Pull Request y la vincula al work item
- 💬 Añadir Comentario de Finalización - Comenta en el work item con el enlace a la PR
- 📦 Publicar Logs - Guarda todos los logs del pipeline como artefactos
Work Item Created/Updated
↓
Setup Entorno
(Python, Node.js, NPM)
↓
Cache de Paquetes NPM
↓
Instalar Copilot CLI
↓
Parsear Datos Webhook
↓
Clone Repositorio
↓
Leer Detalles del Work Item
↓
Inicializar Work Item
↓
Configurar MCP Servers
↓
Verificar Acceso MCP
↓
Create Branch (copilot/xxx)
↓
Run GitHub Copilot
(Genera código IA)
↓
Commit Changes
↓
Push to Remote
↓
Link Branch to WI
↓
Update Activity (Development)
↓
Create Pull Request
↓
Link PR to Work Item
↓
Add Completion Comment
↓
Publish Logs
↓
✅ Workflow Complete