Planification par lots avec l’agent de modernisation GitHub Copilot

Le plan Batch vous permet de générer des plans de modernisation pour plusieurs référentiels à l’aide d’un flux de travail et d’un objectif de modernisation partagé. Cet article vous montre comment créer des plans cohérents entre plusieurs applications avant de commencer l’exécution.

À l’aide d’un plan de traitement par lots, vous pouvez :

  • Créez des plans pour plusieurs applications dans un flux de travail guidé.
  • Appliquez un objectif de modernisation cohérent entre les référentiels.
  • Utilisez les résultats de l’évaluation comme contexte pour améliorer la qualité du plan.
  • Passez en revue les plans avant l’exécution et décidez quels référentiels moderniser en premier.

Le plan Batch offre les avantages suivants :

  • Cohérence et contrôle :

    • Intention commune : Commencez à partir d’un même prompt de modernisation pour tous les dépôts.
    • Sorties comparables : passez en revue les plans côte à côte avant de les exécuter.
    • Affinement flexible : modifiez chaque plan généré pour refléter les besoins spécifiques au référentiel.
  • Planification à grande échelle :

    • Visibilité du portefeuille : comprendre comment la même requête s’applique entre les applications.
    • Préparation réutilisable : réutilisez la même liste de référentiels et les sorties d’évaluation des étapes précédentes.
    • Prise de décision plus rapide : générez d’abord des plans, puis exécutez uniquement les référentiels que vous approuvez.

Prerequisites

  • Moderniser l’interface CLI.
  • Accès à tous les référentiels que vous souhaitez planifier.
  • Authentification GitHub configurée (gh auth login).
  • Une évaluation par lots terminée (recommandée) si vous souhaitez que l’agent utilise les résultats de l’évaluation comme contexte de planification.

Conseil / Astuce

L’évaluation par lots n’est pas nécessaire, mais elle produit généralement des plans plus précis et actionnables, car l’agent peut référencer les problèmes détectés et les opportunités de migration.

Configurer les référentiels

L’agent de modernisation prend en charge plusieurs façons de spécifier les référentiels que vous souhaitez planifier :

  • Dossier actif : créez un plan pour le projet dans votre répertoire de travail actuel.
  • Entrée manuelle : entrez directement les chemins d’accès au répertoire local ou les URL Git distantes.
  • Fichier de configuration du référentiel : utilisez un fichier de configuration JSON qui répertorie tous les référentiels.

Fichier de configuration du référentiel

Pour les opérations par lots sur de nombreux référentiels, créez un fichier de configuration JSON pour répertorier tous les référentiels. Par exemple, créez-le .github/modernize/repos.json dans votre répertoire de travail ou fournissez un chemin personnalisé.

Format (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/NewsFeedSite.git"
    }
]

Chaque entrée de dépôt prend en charge les champs suivants :

Terrain Description Obligatoire
name Nom convivial du référentiel (utilisé dans les rapports et les tableaux de bord). Oui
url URL de clonage Git au format HTTPS ou SSH. L’une de url ou path

Conseil / Astuce

Vous pouvez utiliser le même repos.json fichier dans l’évaluation par lots, le plan de traitement par lots et les flux de travail de mise à niveau par lots.

L’agent de modernisation détecte automatiquement le fichier repos.json à .github/modernize/repos.json lorsque vous sélectionnez à partir d’un fichier de configuration en mode interactif. Vous pouvez également fournir un chemin personnalisé.

Fonctionnement du plan de traitement par lots

Flux de travail de planification par lots :

  1. Sélection du référentiel : choisissez les référentiels que vous souhaitez inclure.
  2. Sélection du contexte : utilisez éventuellement les rapports d’évaluation disponibles comme entrée.
  3. Définition du prompt : Décrivez votre objectif de modernisation une seule fois et appliquez-le sur l’ensemble des référentiels.
  4. Clarification : répondez aux questions de suivi de l’agent.
  5. Génération de plan : l’agent crée un plan pour chaque référentiel sélectionné.

Chaque plan généré est enregistré dans le référentiel cible et peut être révisé ou modifié avant l’exécution.

Exécuter un plan de traitement par lots

Après avoir configuré vos référentiels, démarrez le flux de travail de planification par lots.

Mode interactif

  1. Exécutez l’agent de modernisation :

    modernize
    
  2. Sélectionnez Plan dans le menu principal.

    ○ How would you like to modernize your app?
    
        Assess
        Analyze modernization readiness across one or multiple applications
      > Plan
        Generate a structured plan to guide the agent
        Execute
        Run the tasks defined in the modernization plan
    
      Or select a quick-start scenario:
    
        Upgrade
            Upgrade runtimes and frameworks across one or multiple applications
    
  3. Choisissez comment spécifier vos référentiels cibles. Sélectionnez Dans un fichier de configuration pour utiliser un repos.json fichier.

    ○ Choose target repositories
    
        1. Current folder
          /Users/username/project
        2. Manual input
          Enter local path or remote URL
      > 3. From a config file
          /path/to/.github/modernize/repos.json
    

    Conseil / Astuce

    Vous pouvez également sélectionner Saisie manuelle pour saisir directement des chemins locaux ou des URL Git distantes, ou Dossier actuel pour planifier le projet dans votre répertoire actuel.

  4. Si le repos.json fichier est détecté à l’emplacement par défaut, l’agent le remplit automatiquement. Sinon, entrez le chemin d’accès à votre fichier de configuration, puis appuyez sur Entrée.

  5. Tous les référentiels sont sélectionnés par défaut. Désélectionnez les référentiels que vous souhaitez ignorer, puis appuyez sur Entrée pour confirmer votre sélection.

    • Utilisez les touches de direction pour naviguer et appuyer sur Espace pour activer/désactiver les dépôts individuels.
  6. Sélectionnez 1. Conservez le plan local pour générer des plans sur votre ordinateur, ou choisissez 2. Envoyez-les à l’agent cloud pour qu’un agent cloud les génère. L’option 2 est expérimentale.

  7. Entrez un nom de plan ou appuyez sur Entrée pour utiliser la valeur par défaut.

  8. Entrez votre objectif de modernisation en tant qu’invite. Par exemple:

    • upgrade to Spring Boot 3 and prepare for Azure deployment
    • migrate the database to Azure PostgreSQL
    • containerize the application and deploy to Azure Container Apps
  9. Appuyez sur Entrée pour générer les plans.

  10. L'agent fonctionne automatiquement :

    • Clone chaque référentiel sélectionné ou envoie un travail à un agent cloud pour chaque dépôt.
    • Génère un plan pour chaque dépôt localement ou une PR avec le plan dans chaque dépôt.

Étapes suivantes

Après avoir terminé le plan de traitement par lots, passez en revue les plans et exécutez-les à l’aide de la execute commande :

Fournir des commentaires

Si vous avez des commentaires sur le plan de traitement par lots ou l’agent de modernisation, créez un problème dans le dépôt github-copilot-appmod ou utilisez le formulaire de commentaires de modernisation GitHub Copilot.