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

El agente de modernización GitHub Copilot 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.
  • Selección de origen flexible: carpeta actual, entrada manual (rutas de acceso locales o direcciones URL de Git) o archivos de configuración del repositorio.
  • Indicadores visuales de plan y progreso.
  • Avisos guiados para las opciones de configuración, incluidos los dominios de evaluación y los parámetros.
  • 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 <source> Origen que se va a evaluar (repetible). Acepta rutas de acceso locales, direcciones URL de Git o una ruta de acceso del archivo de configuración JSON. Use varias --source marcas para especificar varios repositorios. . (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 GitHub problema para actualizar con el resumen de evaluación. Ninguno
--format <format> Formato de salida para los informes de evaluación: html o markdown. html
--assess-config <path> Ruta de acceso a un archivo YAML de configuración de evaluación que invalida los parámetros de evaluación predeterminados, como el tiempo de ejecución de destino, los servicios de proceso y la cobertura de análisis. Detección automática o valores predeterminados
--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 GitHub problema 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

Evalúe varios repositorios mediante un archivo de configuración:

modernize assess --source .github/modernize/repos.json

Evalúe varios repositorios especificando orígenes directamente:

modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2

Evaluar y generar informes en formato Markdown:

modernize assess --format markdown

Salida

La evaluación genera:

  • Archivos de informe: análisis detallado en formatos JSON, MD y HTML.
  • Resumen: conclusiones clave y recomendaciones.
  • actualizaciones de Issue (si proporciona --issue-url): GitHub emitir comentario 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> Origen que se va a actualizar (repetible). Acepta rutas de acceso locales, direcciones URL de Git o una ruta de acceso del archivo de configuración JSON. Use varias --source marcas para especificar varios repositorios. . (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

Actualice varios repositorios mediante un archivo de configuración:

modernize upgrade "Java 21" --source .github/modernize/repos.json

Actualice varios repositorios especificando orígenes directamente:

modernize upgrade "Java 21" --source https://github.com/org/repo1 --source https://github.com/org/repo2

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

Puede proporcionar varios orígenes a la CLI de varias maneras:

  • Archivo de configuración del repositorio: cree un .github/modernize/repos.json archivo que muestre todos los repositorios y, a continuación, páselo con --source.
  • Varias --source marcas: especifique rutas de acceso locales o direcciones URL de Git directamente en la línea de comandos.
  • Modo interactivo: seleccione orígenes a través de TUI (carpeta actual, entrada manual o configuración del repositorio).

Archivo de configuración del repositorio

Cree un .github/modernize/repos.json archivo para definir la lista de repositorios. La configuración admite dos formatos:

Formato simple (matriz de repositorios):

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

Formato completo (con rutas de acceso locales y de rama):

{
  "repos": [
    {
      "name": "PhotoAlbum-Java",
      "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
      "branch": "main"
    },
    {
      "name": "local-project",
      "path": "/absolute/path/to/project"
    }
  ]
}

Cada entrada del repositorio admite los siguientes campos:

Campo Descripción Obligatorio
name Nombre descriptivo para el repositorio.
url Dirección URL de clonación de Git (HTTPS o SSH). Uno de url o path
path Ruta de acceso absoluta del directorio local. Uno de url o path
branch Bifurcación que se va a consultar después de la clonación. No
description Descripción legible para humanos. No

Formato completo con la agrupación de aplicaciones (opcional, para informes organizados):

Puede agregar una apps[] sección para agrupar repositorios en aplicaciones lógicas. Cuando se definen las aplicaciones, el informe agregado organiza los resultados por aplicación y admite la distribución de informes.

{
  "repos": [
    {
      "name": "PhotoAlbum-Java",
      "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
      "branch": "main"
    },
    {
      "name": "PhotoAlbum",
      "url": "https://github.com/Azure-Samples/PhotoAlbum.git"
    }
  ],
  "apps": [
    {
      "identifier": "photo-app",
      "description": "Photo management application",
      "repos": ["PhotoAlbum-Java"],
      "output": {
        "type": "local",
        "path": "/path/to/reports/photo-app"
      }
    }
  ]
}

Cada entrada de aplicación admite:

Campo Descripción Obligatorio
identifier Nombre para mostrar único de la aplicación.
description Descripción legible para humanos. No
repos Lista de nombres de repositorio que pertenecen a esta aplicación.
output Dónde distribuir el informe de evaluación de esta aplicación después de la generación. No

El output campo admite los siguientes tipos de distribución:

Tipo Descripción Campos obligatorios
local Copie informes en un directorio local. path
git Insertar informes en un repositorio de Git. Formato de dirección URL: https://github.com/org/repo.git#branch:path. url

Importante

La delegación del agente de codificación en la nube (--delegate cloud) requiere que los repositorios tengan direcciones URL del repositorio GitHub (github.com). Los repositorios de rutas de acceso locales y los proveedores que no son de GitHub (GitLab, Azure DevOps) no se admiten para la delegación en la nube y se omiten.

A continuación, use --source para pasar la ruta de acceso del archivo de configuración:

Evaluar todos los repositorios localmente:

modernize assess --source .github/modernize/repos.json

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

modernize assess --source .github/modernize/repos.json --delegate cloud

Actualice todos los repositorios mediante cloud Coding Agent:

modernize upgrade --source .github/modernize/repos.json --delegate cloud

Varios orígenes en la línea de comandos

También puede especificar varios orígenes directamente:

modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
modernize upgrade "Java 21" --source ./project-a --source ./project-b

Pasos siguientes