Compartir a través de


Comandos de la CLI del agente de modernización de Copilot de GitHub

El agente de modernización de Copilot de GitHub proporciona modos interactivos y no interactivos para la modernización de aplicaciones.

Modos de comando

Modo interactivo

Inicie la interfaz de usuario interactiva de texto (TUI) para la modernización guiada:

modernize

El modo interactivo proporciona:

  • Navegación controlada por menús a través del flujo de trabajo de modernización.
  • Indicadores visuales de plan y progreso.
  • Avisos guiados para las opciones de configuración.
  • Interfaz de selección de varios repositorios.

Modo no interactivo

Ejecute comandos específicos directamente para automatización y scripting:

modernize <command> [options]

Use el modo no interactivo cuando:

  • Integración con canalizaciones de CI/CD.
  • Automatización de las operaciones por lotes.
  • Flujos de trabajo de modernización de scripting.
  • Se ejecuta en entornos sin encabezado.

Opciones globales

Todos los comandos admiten estas opciones globales:

Opción Descripción
--help, -h Muestra información de ayuda.
--no-tty Deshabilita los avisos interactivos (modo sin encabezado).

Commands

evaluar

Ejecuta una evaluación y genera un informe de análisis completo.

Sintaxis

modernize assess [options]

Options

Opción Descripción Predeterminado
--source <path> Ruta de acceso al proyecto de origen (ruta de acceso local relativa o absoluta). . (directorio actual)
--output-path <path> Ruta de acceso de salida personalizada para los resultados de la evaluación. .github/modernize/assessment/
--issue-url <url> Dirección URL de problema de GitHub para actualizar con el resumen de evaluación. Ninguno
--multi-repo Habilita la evaluación de varios repositorios. Examina los subdirectorios de primer nivel para varios repositorios. Deshabilitado
--model <model> Modelo LLM que se va a usar. claude-sonnet-4.6
--delegate <delegate> Modo de ejecución: local (esta máquina) o cloud (Agente de codificación en la nube). local
--wait Espera a que las tareas delegadas se completen y generen resultados (solo válidos con --delegate cloud). Deshabilitado
--force Fuerza la delegación de reinicio, ignorando las tareas en curso (solo válidas con --delegate cloud). Deshabilitado

Ejemplos

Evaluación básica del directorio actual:

modernize assess

Evaluar con la ubicación de salida personalizada:

modernize assess --output-path ./reports/assessment

Evalúe y actualice el problema de GitHub con los resultados:

modernize assess --issue-url https://github.com/org/repo/issues/123

Evaluar directorios de proyectos específicos:

modernize assess --source /path/to/project

Evaluar varios repositorios en el directorio actual:

modernize assess  --multi-repo

Salida

La evaluación genera:

  • Archivos de informe: análisis detallado en formatos JSON, MD y HTML.
  • Resumen: conclusiones clave y recomendaciones.
  • Actualizaciones de problemas (si proporciona --issue-url): comentario del problema de GitHub con resumen.

plan create

Crea un plan de modernización basado en un lenguaje natural que describe los objetivos de modernización.

Sintaxis

modernize plan create <prompt> [options]

Argumentos

Argumento Descripción
<prompt> Descripción del lenguaje natural de los objetivos de modernización (obligatorios).

Options

Opción Descripción Predeterminado
--source <path> Ruta de acceso al código fuente de la aplicación. Directorio actual
--plan-name <name> Nombre del plan de modernización. modernization-plan
--language <lang> Lenguaje de programación (java, dotneto python). Detección automática
--overwrite Sobrescribe un plan existente con el mismo nombre. Deshabilitado
--model <model> Modelo LLM que se va a usar. claude-sonnet-4.6

Ejemplos

Generar un plan de migración:

modernize plan create "migrate from oracle to azure postgresql"

Genere un plan de actualización con el nombre personalizado:

modernize plan create "upgrade to spring boot 3" --plan-name spring-boot-upgrade

Genere un plan de implementación:

modernize plan create "deploy the app to azure container apps" --plan-name deploy-to-aca

Ejemplo de opciones completas:

modernize plan create "upgrade to .NET 8" \
    --source /path/to/project \
    --plan-name dotnet8-upgrade \
    --language dotnet \
    --issue-url https://github.com/org/repo/issues/456

Ejemplos de aviso

Actualizaciones del marco de trabajo:

  • upgrade to spring boot 3
  • upgrade to .NET 10
  • upgrade to JDK 21
  • migrate from spring boot 2 to spring boot 3

Migraciones de base de datos:

  • migrate from oracle to azure postgresql
  • migrate from SQL Server to azure cosmos db
  • switch from MySQL to azure database for mysql

Migraciones a la nube:

  • migrate from on-premises to azure
  • containerize and deploy to azure container apps
  • migrate from rabbitmq to azure service bus

Despliegue:

  • deploy to azure app service
  • deploy to azure kubernetes service
  • set up CI/CD pipeline for azure

Salida

El comando genera:

  • Archivo de plan (.github/modernize/{plan-name}/plan.md): estrategia de modernización detallada, entre las que se incluyen:

    • Contexto y objetivos
    • Enfoque y metodología
    • Aclaraciones
  • Lista de tareas (.github/modernize/{plan-name}/tasks.json): desglose estructurado de las tareas ejecutables con:

    • Descripciones de tareas
    • Aptitudes para usar
    • Criterios de éxito

Sugerencia

Puede editar manualmente tanto como plan.mdtasks.json después de la generación para personalizar el enfoque antes de la ejecución.

ejecución del plan

Ejecuta un plan de modernización creado por modernize plan create.

Sintaxis

modernize plan execute [prompt] [options]

Argumentos

Argumento Descripción
[prompt] Las instrucciones de lenguaje natural opcionales para la ejecución (por ejemplo, "omitir pruebas").

Options

Opción Descripción Predeterminado
--source <path> Ruta de acceso al código fuente de la aplicación. Directorio actual
--plan-name <name> Nombre del plan que se va a ejecutar. modernization-plan
--language <lang> Lenguaje de programación (java o dotnet). Detección automática
--model <model> Modelo LLM que se va a usar. claude-sonnet-4.6
--delegate <delegate> Modo de ejecución: local (esta máquina) o cloud (Agente de codificación en la nube). local
--force Fuerza la ejecución incluso cuando un trabajo de CCA está en curso. Deshabilitado

Ejemplos

Ejecute el plan más reciente de forma interactiva:

modernize plan execute

Ejecute un plan específico:

modernize plan execute --plan-name spring-boot-upgrade

Ejecute con instrucciones adicionales:

modernize plan execute "skip the test" --plan-name spring-boot-upgrade

Ejecute en modo sin encabezado para CI/CD:

modernize plan execute --plan-name spring-boot-upgrade --no-tty

Comportamiento de ejecución

Durante la ejecución, el agente:

  1. Carga el plan: lee el plan y la lista de tareas de . .github/modernization/{plan-name}/

  2. Ejecuta tareas: procesa cada tarea de la lista de tareas secuencialmente:

    • Aplica transformaciones de código.
    • Valida las compilaciones después de los cambios.
    • Examina los CV.
    • Confirma los cambios con mensajes descriptivos.
  3. Genera resumen: proporciona un informe de todos los cambios y resultados.

Salida

  • Historial de confirmaciones: confirmaciones detalladas para cada tarea ejecutada.
  • Informe de resumen: información general sobre los cambios, los éxitos y los problemas detectados.
  • Validación de compilación: confirmación de que la aplicación se compila correctamente.
  • Informe CVE: Vulnerabilidades de seguridad identificadas y abordadas.

upgrade

Ejecuta un flujo de trabajo de actualización de un extremo a otro ( plan) y ejecuta en un solo comando.

Sintaxis

modernize upgrade [prompt] [options]

Argumentos

Argumento Descripción
[prompt] La versión de destino, como Java 17, Spring Boot 3.2, .NET 10. El valor predeterminado es ltS más reciente.

Options

Opción Descripción Predeterminado
--source <source> Ruta de acceso al proyecto de origen (ruta de acceso local relativa o absoluta). . (directorio actual)
--delegate <delegate> Modo de ejecución: local (esta máquina) o cloud (Agente de codificación en la nube). local
--model <model> Modelo LLM que se va a usar. claude-sonnet-4.6

Ejemplos

Ejecute upgrade en el directorio actual:

modernize upgrade "Java 17"
modernize upgrade ".NET 10"

Ejecute upgrade en un proyecto específico:

modernize upgrade "Java 17" --source /path/to/project

Ejecute upgrade mediante el agente de codificación en la nube:

modernize upgrade "Java 17" --delegate cloud

Ayuda

Proporciona comandos de ayuda e información.

Sintaxis

modernize help [command]

Commands

Comando Descripción
models Enumera los modelos LLM disponibles y sus multiplicadores.

Ejemplos

Enumerar los modelos disponibles:

modernize help models

Configuración de la CLI

Mediante el agente de modernización, puede personalizar el comportamiento de la aplicación a través de archivos JSON y variables de entorno.

Variables de entorno

Establezca variables de entorno para invalidar todos los demás ámbitos de configuración:

Variable Descripción Predeterminado
MODERNIZE_LOG_LEVEL Nivel de registro (none, error, warning, info, debug, ) all info
MODERNIZE_MODEL Modelo LLM que se va a usar. claude-sonnet-4.6
MODERNIZE_COLLECT_TELEMETRY Habilite o deshabilite la recopilación de telemetría. true

Ejemplo:

export MODERNIZE_LOG_LEVEL=debug
export MODERNIZE_MODEL=claude-sonnet-4.6
modernize assess

Configuración del usuario

Almacene las preferencias específicas del usuario en o la ~/.modernize/config.json configuración de todo el repositorio en .github/modernize/config.json.

{
  "model": "claude-sonnet-4.6",
  "log_level": "info",
  "trusted_folders": [
    "/path/to/trusted/project",
  ]
}

La trusted_folders propiedad especifica las carpetas de confianza para usar LLM en modo interactivo.

Nota:

Las variables de entorno tienen la prioridad más alta, seguida de la configuración del usuario y, a continuación, la configuración del repositorio. Use variables de entorno para invalidaciones de CI/CD y configuración de usuario para las preferencias personales.

Configuración de varios repositorios

Cree un .github/modernize/repos.json archivo para habilitar el modo de varios repositorios:

[
  {
    "name": "PhotoAlbum-Java",
    "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
  },
  {
    "name": "PhotoAlbum",
    "url": "https://github.com/Azure-Samples/PhotoAlbum.git"
  }
]

Una vez implementado el repos.json archivo, use los siguientes comandos para operar en todos los repositorios configurados:

Evaluar todos los repositorios localmente:

modernize assess

Evalúe todos los repositorios mediante el agente de codificación en la nube:

modernize assess --delegate cloud

Actualice todos los repositorios mediante cloud Coding Agent:

modernize upgrade --delegate cloud

Pasos siguientes