Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La actualización por lotes le permite aplicar planes de modernización coherentes en varios repositorios simultáneamente. En este artículo se muestra cómo actualizar varias aplicaciones de forma eficaz a escala empresarial.
Mediante la actualización por lotes, puede hacer lo siguiente:
- Actualice varias aplicaciones simultáneamente mediante el mismo destino de actualización.
- Aplique patrones coherentes mediante patrones de actualización similares entre aplicaciones.
- Aproveche la ejecución en paralelo al delegar en agentes de codificación en la nube.
La actualización por lotes proporciona las siguientes ventajas:
Ejecución coherente:
- Enfoque estandarizado: aplique los mismos patrones de modernización en todos los repositorios.
- Variabilidad reducida: garantice rutas de actualización coherentes para aplicaciones similares.
- Estrategias reutilizables: use aptitudes específicas de la organización en todas las aplicaciones.
Escala y eficiencia:
- Procesamiento paralelo: use agentes de codificación en la nube para procesar varios repositorios simultáneamente.
- Flujos de trabajo automatizados: se integran con las canalizaciones de CI/CD para la modernización programada.
- Ahorro de tiempo: reduzca el tiempo total de modernización de semanas a horas.
Prerrequisitos
- Modernización de la CLI.
- Una evaluación por lotes completada (recomendada, pero no necesaria).
- Todos los repositorios usan el mismo lenguaje de programación (Java o .NET).
- Acceso a todos los repositorios que desea actualizar.
- Autenticación de GitHub configurada (
gh auth login).
Importante
Todos los repositorios de una actualización por lotes deben usar el mismo lenguaje de programación. Si un repositorio usa un idioma diferente, la actualización por lotes marca el repositorio como con errores y la omite.
Configuración de repositorios
Para habilitar la actualización por lotes, cree un .github/modernize/repos.json archivo en el directorio de trabajo que muestre todos los repositorios que desea actualizar.
Sugerencia
Asegúrese de que tiene los permisos adecuados para acceder a los repositorios o bifurcarlos primero.
[
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
},
{
"name": "ZavaSocialFrontEnd",
"url": "https://github.com/bradygaster/ZavaSocialFrontEnd"
}
]
Configuración del repositorio
Cada entrada requiere:
- name: un nombre descriptivo para el repositorio (que se usa en informes y paneles).
- url: la dirección URL de clonación de Git (formato HTTPS).
Sugerencia
Puede incluir repositorios de diferentes organizaciones y usar distintos métodos de autenticación siempre que tenga acceso.
Ubicación del archivo
Debe colocar el archivo repos.json en .github/modernize/repos.json.
El agente de modernización detecta automáticamente este archivo al ejecutar operaciones por lotes.
Elegir el modo de ejecución
La actualización por lotes admite dos modos de ejecución y dos métodos de interacción:
Modos de ejecución
Ejecución local
- Ideal para: Probar, conjuntos más pequeños de repositorios (repositorios de 1 a 5) o cuando se prefiere el control local.
- Funcionamiento: procesa repositorios secuencialmente en la máquina local.
- Configuración necesaria: ninguna aparte de los requisitos previos básicos.
Delegación del agente de codificación en la nube
- Ideal para: operaciones a escala empresarial, carteras grandes (5+ repositorios) o procesamiento paralelo.
- Cómo funciona: envía tareas a Los agentes de codificación en la nube de GitHub para su ejecución en paralelo en la nube.
- Configuración necesaria: configuración del servidor MCP en cada repositorio (configurado durante la instalación).
Sugerencia
Al procesar repositorios en paralelo, la delegación del agente de codificación en la nube puede reducir el tiempo total de modernización de horas a minutos.
Métodos de interacción
Modo interactivo (TUI)
- Experiencia guiada con menús y avisos.
- Lo mejor para los usuarios por primera vez o cuando quiera revisar las opciones.
- Admite la ejecución local y en la nube.
Modo no interactivo (CLI/sin encabezado)
- Basada en línea de comandos, totalmente automatizada.
- Mejor para canalizaciones y automatización de CI/CD.
- Admite la ejecución local y en la nube con el indicador
--delegate cloud.
Nota:
Puede combinar cualquier modo de ejecución con cualquier método de interacción. Por ejemplo:
-
modernize(interactivo, local) -
modernize→ seleccionar Agentes de codificación en la nube (interactivos, en la nube) -
modernize upgrade "Java 21"(no interactivo, local) -
modernize upgrade "Java 21" --delegate cloud(no interactivo, nube)
Funcionamiento de la actualización por lotes
Flujo de trabajo de actualización por lotes:
- Detección de idioma: detecta automáticamente el lenguaje del proyecto (Java o .NET) desde el primer repositorio.
- Creación de plan: crea un plan de actualización basado en su mensaje o usa las versiones más recientes de LTS.
- Ejecución: aplica la actualización a cada repositorio.
- Validación: compila y valida los cambios de cada repositorio.
Ejecución de la actualización por lotes
Después de configurar los repositorios y elegir un modo de ejecución, inicie la actualización por lotes.
Modo interactivo (actualización local)
Ejecute el agente de modernización:
modernizeEl agente detecta el
repos.jsonarchivo y muestra la lista de repositorios:Seleccione repositorios para actualizar y presione
Enterpara confirmar la selección.-
Presione
Ctrl+Apara seleccionar todos los repositorios. -
O bien, use las teclas de dirección para navegar y presionar
Enterpara seleccionar repositorios individuales.
-
Presione
Seleccione 2. Actualice desde el menú principal.
Para ejecutar la actualización, seleccione 1. Actualice localmente.
El agente actúa automáticamente:
- Crea un plan de actualización basado en la solicitud.
- Aplica el plan a cada repositorio secuencialmente.
- Compila y valida cada repositorio después de los cambios.
- Muestra el progreso y el resumen de cada repositorio.
Modo interactivo (delegación a agentes de codificación en la nube)
Requisitos previos: Configuración del servidor MCP
Antes de ejecutar la actualización, configure el servidor MCP de modernización de Copilot de GitHub en cada repositorio.
Para las aplicaciones Java, agregue esta configuración en la sección Agente de codificación en la nube de la configuración del repositorio:
{
"mcpServers": {
"app-modernization": {
"type": "local",
"command": "npx",
"tools": [
"*"
],
"args": [
"-y",
"@microsoft/github-copilot-app-modernization-mcp-server"
]
}
}
}
Pasos
Ejecute el agente de modernización:
modernizeEl agente detecta el
repos.jsonarchivo y muestra la lista de repositorios:Seleccione repositorios para actualizar y presione
Enterpara confirmar la selección.-
Presione
Ctrl+Apara seleccionar todos los repositorios. -
O bien, use las teclas de dirección para navegar y presionar
Enterpara seleccionar repositorios individuales.
-
Presione
Seleccione 2. Actualice desde el menú principal.
Para ejecutar la actualización, seleccione 2. Delegar en agentes de codificación en la nube.
El agente actúa automáticamente:
Crea planes de actualización para cada repositorio.
Envía una tarea del Agente de Codificación en la Nube para cada repositorio.
Ejecuta trabajos de forma independiente en paralelo en la nube.
Muestra los identificadores de trabajo y las direcciones URL de solicitud de incorporación de cambios para cada repositorio.
Delega las tareas a AgentHQ para su ejecución en paralelo.
Realiza un seguimiento del progreso de cada tarea individual en tiempo real.
Muestra el resumen de actualización de cada tarea completada.
Modo no interactivo (CLI)
Para la automatización y la integración de CI/CD, use el modernize upgrade comando :
Actualizar localmente:
modernize upgrade "Java 21"
Actualización mediante agentes de codificación en la nube:
modernize upgrade "Java 21" --delegate cloud
El comando detecta automáticamente el repos.json archivo y procesa todos los repositorios.
Nota:
Para ver la ejecución sin encabezado por lotes y más opciones de la CLI, consulte la sección Configuración de varios repositorios en la referencia de comandos de la CLI.
Revisión de los resultados
Cuando finalice la actualización por lotes:
Compruebe el informe agregado que se muestra en el terminal.
Revise los cambios individuales del repositorio:
cd <repository-name> git status git diffCree pull requests para actualizaciones exitosas:
cd <repository-name> gh pr create --title "Upgrade to Java 21" --body "Automated upgrade by modernization agent"
Solución de problemas de actualizaciones por lotes
Problemas comunes
Errores de acceso al repositorio:
- Compruebe la autenticación de GitHub mediante
gh auth status. - Asegúrese de que tiene acceso a todos los repositorios de
repos.json.
Errores de coincidencia de idioma:
- Asegúrese de que todos los repositorios de
repos.jsonusan el mismo lenguaje (Java o .NET). - Cree operaciones por lotes independientes para distintos lenguajes.
Errores de clonación:
- Compruebe que las direcciones URL del repositorio en
repos.jsonson correctas y accesibles. - Asegúrese de que tiene permisos de acceso adecuados para todos los repositorios.
- Compruebe la conectividad de red y la configuración de VPN.
Errores de compilación después de la actualización:
- Revise los mensajes de error de compilación en el informe consolidado.
- Compruebe si necesita actualizar otras dependencias.
- Compruebe la compatibilidad de bibliotecas de terceros con la nueva versión.
Errores de repositorio individuales:
- El proceso por lotes continúa incluso si se produce un error en los repositorios individuales.
- Revise el informe agregado para identificar repositorios con errores.
- Compruebe los registros de errores para ver mensajes de error específicos.
- Vuelva a intentar individualmente los repositorios que han fallado.
Errores del agente de codificación en la nube:
- Compruebe los permisos y los límites de cuota de Acciones de GitHub.
- Para .NET Framework, asegúrese de que la configuración del ejecutor de Windows esté establecida correctamente.
Pasos siguientes
Después de completar la actualización por lotes, puede hacer lo siguiente:
Continuar mejorando:
- Ejecución de la evaluación por lotes : vuelva a evaluar para comprobar las mejoras e identificar nuevas oportunidades.
- Crear habilidades personalizadas para patrones específicos de la organización - Capturar patrones exitosos para su reutilización.
Más información:
Enviar comentarios
¡Valoramos su entrada! Si tiene algún comentario sobre la actualización por lotes o el agente de modernización, cree un problema en el repositorio github-copilot-appmod o use el formulario de comentarios de modernización de GitHub Copilot.