Partage via


Commandes CLI de l’agent de modernisation GitHub Copilot

L’agent de modernisation GitHub Copilot fournit des modes interactifs et non interactifs pour la modernisation des applications.

Modes de commande

Mode interactif

Lancez l’interface utilisateur de texte interactive (TUI) pour la modernisation guidée :

modernize

Le mode interactif fournit les éléments suivants :

  • Navigation pilotée par le menu via le flux de travail de modernisation.
  • Indicateurs de plan visuel et de progression.
  • Invites guidées pour les options de configuration.
  • Interface de sélection multi-référentiel.

Mode non interactif

Exécutez des commandes spécifiques directement pour l’automatisation et les scripts :

modernize <command> [options]

Utilisez le mode non interactif lorsque :

  • Intégration à des pipelines CI/CD.
  • Automatisation des opérations par lots.
  • Scripts de flux de travail de modernisation.
  • Exécution dans des environnements sans tête.

Options globales

Toutes les commandes prennent en charge ces options globales :

Choix Description
--help, -h Affiche les informations d’aide.
--no-tty Désactive les invites interactives (mode sans tête).

Commandes

Évaluer

Exécute une évaluation et génère un rapport d’analyse complet.

Syntaxe

modernize assess [options]

Options

Choix Description Par défaut
--source <path> Chemin d’accès au projet source (chemin local relatif ou absolu). . (répertoire actif)
--output-path <path> Chemin de sortie personnalisé pour les résultats de l’évaluation. .github/modernize/assessment/
--issue-url <url> URL de problème GitHub à mettre à jour avec le résumé de l’évaluation. Aucun
--multi-repo Active l’évaluation multipo. Analyse les sous-répertoires de premier niveau pour plusieurs référentiels. Désactivé
--model <model> Modèle LLM à utiliser. claude-sonnet-4.6
--delegate <delegate> Mode d’exécution : local (cet ordinateur) ou cloud (Agent de codage cloud). local
--wait Attend que les tâches déléguées se terminent et génèrent des résultats (valides uniquement avec --delegate cloud). Désactivé
--force Force le redémarrage de la délégation, en ignorant les tâches en cours (uniquement valides avec --delegate cloud). Désactivé

Exemples

Évaluation de base du répertoire actif :

modernize assess

Évaluer avec l’emplacement de sortie personnalisé :

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

Évaluer et mettre à jour le problème GitHub avec les résultats :

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

Évaluer un répertoire de projet spécifique :

modernize assess --source /path/to/project

Évaluez plusieurs dépôts dans le répertoire actif :

modernize assess  --multi-repo

Sortie

L’évaluation génère :

  • Fichiers de rapport : analyse détaillée dans les formats JSON, MD et HTML.
  • Résumé : résultats et recommandations clés.
  • Problèmes de mise à jour (si vous fournissez --issue-url) : commentaire du problème GitHub avec résumé.

création de plan

Crée un plan de modernisation basé sur une invite de langage naturel décrivant vos objectifs de modernisation.

Syntaxe

modernize plan create <prompt> [options]

Arguments

Argument Description
<prompt> Description en langage naturel des objectifs de modernisation (requis).

Options

Choix Description Par défaut
--source <path> Chemin d’accès au code source de l’application. Répertoire courant
--plan-name <name> Nom du plan de modernisation. modernization-plan
--language <lang> Langage de programmation (java, dotnetou python). Détection automatique
--overwrite Remplace un plan existant portant le même nom. Désactivé
--model <model> Modèle LLM à utiliser. claude-sonnet-4.6

Exemples

Générez un plan de migration :

modernize plan create "migrate from oracle to azure postgresql"

Générez un plan de mise à niveau avec un nom personnalisé :

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

Générez un plan de déploiement :

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

Exemple d’options complètes :

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

Exemples d’invite

Mises à niveau de framework :

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

Migrations de base de données :

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

Migrations cloud :

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

Déploiement:

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

Sortie

La commande génère :

  • Fichier de plan (.github/modernize/{plan-name}/plan.md) : stratégie de modernisation détaillée, notamment :

    • Contexte et objectifs
    • Approche et méthodologie
    • Clarifications
  • Liste des tâches (.github/modernize/{plan-name}/tasks.json) : Répartition structurée des tâches exécutables avec :

    • Descriptions des tâches
    • Compétences à utiliser
    • Critères de réussite

Conseil / Astuce

Vous pouvez modifier manuellement les deux plan.md et tasks.json après génération pour personnaliser l’approche avant l’exécution.

plan d’exécution

Exécute un plan de modernisation créé par modernize plan create.

Syntaxe

modernize plan execute [prompt] [options]

Arguments

Argument Description
[prompt] Instructions facultatives en langage naturel pour l’exécution (par exemple, « ignorer les tests »).

Options

Choix Description Par défaut
--source <path> Chemin d’accès au code source de l’application. Répertoire courant
--plan-name <name> Nom du plan à exécuter. modernization-plan
--language <lang> Langage de programmation (java ou dotnet). Détection automatique
--model <model> Modèle LLM à utiliser. claude-sonnet-4.6
--delegate <delegate> Mode d’exécution : local (cet ordinateur) ou cloud (Agent de codage cloud). local
--force Force l’exécution même lorsqu’un travail CCA est en cours. Désactivé

Exemples

Exécutez le plan le plus récent de manière interactive :

modernize plan execute

Exécutez un plan spécifique :

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

Exécutez avec des instructions supplémentaires :

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

Exécutez en mode sans tête pour CI/CD :

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

Comportement d’exécution

Pendant l’exécution, l’agent :

  1. Charge le plan : lit le plan et la liste des tâches à partir de .github/modernization/{plan-name}/

  2. Exécute des tâches : traite chaque tâche de la liste des tâches de manière séquentielle :

    • Applique des transformations de code.
    • Valide les builds après les modifications.
    • Recherche les CVE.
    • Valide les modifications avec des messages descriptifs.
  3. Génère un résumé : fournit un rapport de toutes les modifications et résultats.

Sortie

  • Historique des validations : validations détaillées pour chaque tâche exécutée.
  • Rapport de synthèse : Vue d’ensemble des modifications, des réussites et des problèmes rencontrés.
  • Validation de build : confirmation que l’application est générée avec succès.
  • Rapport CVE : vulnérabilités de sécurité identifiées et traitées.

upgrade

Exécute un flux de travail de mise à niveau de bout en bout - planifier et exécuter - dans une seule commande.

Syntaxe

modernize upgrade [prompt] [options]

Arguments

Argument Description
[prompt] Version cible, telle que Java 17, Spring Boot 3.2, .NET 10. La valeur par défaut est la dernière LTS.

Options

Choix Description Par défaut
--source <source> Chemin d’accès au projet source (chemin local relatif ou absolu). . (répertoire actif)
--delegate <delegate> Mode d’exécution : local (cet ordinateur) ou cloud (Agent de codage cloud). local
--model <model> Modèle LLM à utiliser. claude-sonnet-4.6

Exemples

Exécutez sur upgrade le répertoire actif :

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

Exécutez sur upgrade un projet spécifique :

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

Exécutez à upgrade l’aide de l’agent de codage cloud :

modernize upgrade "Java 17" --delegate cloud

help

Fournit de l’aide et des commandes d’informations.

Syntaxe

modernize help [command]

Commandes

Command Description
models Répertorie les modèles LLM disponibles et leurs multiplicateurs.

Exemples

Répertorier les modèles disponibles :

modernize help models

Configurer l’interface CLI

À l’aide de l’agent de modernisation, vous pouvez personnaliser le comportement de l’application via des fichiers JSON et des variables d’environnement.

Variables d'environnement

Définissez des variables d’environnement pour remplacer toutes les autres étendues de configuration :

Variable Description Par défaut
MODERNIZE_LOG_LEVEL Niveau de journalisation (none, , warningerror, debuginfo, all) info
MODERNIZE_MODEL Modèle LLM à utiliser. claude-sonnet-4.6
MODERNIZE_COLLECT_TELEMETRY Activez ou désactivez la collecte de données de télémétrie. true

Exemple :

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

Configuration utilisateur

Stocker des préférences spécifiques à l’utilisateur dans ou des ~/.modernize/config.json paramètres à l’échelle du référentiel dans .github/modernize/config.json.

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

La trusted_folders propriété spécifie les dossiers approuvés pour utiliser LLM en mode interactif.

Note

Les variables d’environnement sont prioritaires, suivies de la configuration utilisateur, puis de la configuration du référentiel. Utilisez des variables d’environnement pour les remplacements CI/CD et la configuration utilisateur pour les préférences personnelles.

Configuration de plusieurs référentiels

Créez un .github/modernize/repos.json fichier pour activer le mode multi-référentiel :

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

Une fois le repos.json fichier en place, utilisez les commandes suivantes pour fonctionner sur tous les référentiels configurés :

Évaluez tous les référentiels localement :

modernize assess

Évaluez tous les référentiels à l’aide de l’Agent de codage cloud :

modernize assess --delegate cloud

Mettez à niveau tous les référentiels à l’aide de l’Agent de codage cloud :

modernize upgrade --delegate cloud

Étapes suivantes