Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.
- Sélection de source flexible : dossier actif, entrée manuelle (chemins d’accès locaux ou URL Git) ou fichiers de configuration du référentiel.
- Indicateurs de plan visuel et de progression.
- Invites guidées pour les options de configuration, notamment les domaines d’évaluation et les paramètres.
- 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 <source> |
Source à évaluer (reproductible). Accepte les chemins d’accès locaux, les URL Git ou un chemin d’accès au fichier de configuration JSON. Utilisez plusieurs --source indicateurs pour spécifier plusieurs référentiels. |
. (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 |
--format <format> |
Format de sortie pour les rapports d’évaluation : html ou markdown. |
html |
--assess-config <path> |
Chemin d’accès à un fichier YAML de configuration d’évaluation qui remplace les paramètres d’évaluation par défaut tels que le runtime cible, les services de calcul et la couverture d’analyse. | Découverte automatique ou par défaut |
--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
Évaluez et mettez à jour GitHub problème 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 référentiels à l’aide d’un fichier de configuration :
modernize assess --source .github/modernize/repos.json
Évaluez plusieurs référentiels en spécifiant directement des sources :
modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
Évaluer et générer des rapports au format Markdown :
modernize assess --format markdown
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.
- mises à jour Issue (si vous fournissez
--issue-url) : GitHub commentaire du problème 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 3upgrade to .NET 10upgrade to JDK 21migrate from spring boot 2 to spring boot 3
Migrations de base de données :
migrate from oracle to azure postgresqlmigrate from SQL Server to azure cosmos dbswitch from MySQL to azure database for mysql
Migrations cloud :
migrate from on-premises to azurecontainerize and deploy to azure container appsmigrate from rabbitmq to azure service bus
Déploiement:
deploy to azure app servicedeploy to azure kubernetes serviceset 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 :
Charge le plan : lit le plan et la liste des tâches à partir de
.github/modernization/{plan-name}/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.
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> |
Source à mettre à niveau (reproductible). Accepte les chemins d’accès locaux, les URL Git ou un chemin d’accès au fichier de configuration JSON. Utilisez plusieurs --source indicateurs pour spécifier plusieurs référentiels. |
. (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
Mettez à niveau plusieurs référentiels à l’aide d’un fichier de configuration :
modernize upgrade "Java 21" --source .github/modernize/repos.json
Mettez à niveau plusieurs référentiels en spécifiant directement des sources :
modernize upgrade "Java 21" --source https://github.com/org/repo1 --source https://github.com/org/repo2
help
Fournit de l’aide et des commandes d’informations.
Syntaxe
modernize help [command]
Commandes
| Commande | 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, , errorwarning, infodebug, 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
Vous pouvez fournir plusieurs sources à l’interface CLI de plusieurs façons :
-
Fichier de configuration du référentiel : créez un
.github/modernize/repos.jsonfichier qui répertorie tous les référentiels, puis transmettez-le.--source -
Plusieurs
--sourceindicateurs : spécifiez des chemins d’accès locaux ou des URL Git directement sur la ligne de commande. - Mode interactif : sélectionnez des sources via le TUI (dossier actif, entrée manuelle ou configuration du référentiel).
Fichier de configuration du référentiel
Créez un .github/modernize/repos.json fichier pour définir votre liste de référentiels. La configuration prend en charge deux formats :
Format simple (tableau de référentiels) :
[
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
},
{
"name": "PhotoAlbum",
"url": "https://github.com/Azure-Samples/PhotoAlbum.git"
}
]
Format complet (avec des chemins de branche et locaux) :
{
"repos": [
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
"branch": "main"
},
{
"name": "local-project",
"path": "/absolute/path/to/project"
}
]
}
Chaque entrée de dépôt prend en charge les champs suivants :
| Champ | Description | Obligatoire |
|---|---|---|
name |
Nom convivial du référentiel. | Oui |
url |
URL de clone Git (HTTPS ou SSH). | L’une ou l’autre urlpath |
path |
Chemin d’accès absolu du répertoire local. | L’une ou l’autre urlpath |
branch |
Branche à extraire après le clonage. | Non |
description |
Description lisible par l’homme. | Non |
Format complet avec regroupement d’applications (facultatif, pour les rapports organisés) :
Vous pouvez ajouter une apps[] section pour regrouper des référentiels dans des applications logiques. Lorsque les applications sont définies, le rapport agrégé organise les résultats par application et prend en charge la distribution des rapports.
{
"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"
}
}
]
}
Chaque entrée d’application prend en charge :
| Champ | Description | Obligatoire |
|---|---|---|
identifier |
Nom complet unique de l’application. | Oui |
description |
Description lisible par l’homme. | Non |
repos |
Liste des noms de référentiels appartenant à cette application. | Oui |
output |
Où distribuer le rapport d’évaluation de cette application après la génération. | Non |
Le output champ prend en charge les types de distribution suivants :
| Catégorie | Description | Champs obligatoires |
|---|---|---|
local |
Copiez des rapports dans un répertoire local. | path |
git |
Envoyer (push) des rapports vers un dépôt Git. Format d’URL : https://github.com/org/repo.git#branch:path. |
url |
Important
La délégation de l’Agent de codage cloud (--delegate cloud) nécessite que les référentiels aient des URL de référentiel GitHub (github.com). Les référentiels de chemin d'accès local et les fournisseurs non GitHub (GitLab, Azure DevOps) ne sont pas pris en charge pour la délégation cloud et sont ignorés.
--source Utilisez ensuite pour passer le chemin d’accès du fichier config :
Évaluez tous les référentiels localement :
modernize assess --source .github/modernize/repos.json
Évaluez tous les référentiels à l’aide de l’Agent de codage cloud :
modernize assess --source .github/modernize/repos.json --delegate cloud
Mettez à niveau tous les référentiels à l’aide de l’Agent de codage cloud :
modernize upgrade --source .github/modernize/repos.json --delegate cloud
Plusieurs sources sur la ligne de commande
Vous pouvez également spécifier plusieurs sources directement :
modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
modernize upgrade "Java 21" --source ./project-a --source ./project-b