GitHub Copilot CLI peut lire un problème, proposer un plan d’implémentation et rédiger des GitHub modifications de code qui répondent aux exigences. Comme le workflow se déroule sous forme de conversation, vous pouvez corriger les hypothèses, indiquer les fichiers pertinents et affiner l’approche au fur et à mesure que GitHub Copilot CLI travaille.
Exemple de scénario
Imaginez que vous travaillez sur une équipe de plateforme qui gère une API de facturation interne Node.js qui alimente les abonnements clients. Un responsable de produit ouvre un problème demandant un nouveau GET /subscriptions/{id}/plan point de terminaison qui retourne le plan attaché à un abonnement donné, ainsi que des tests unitaires et une mise à jour de la spécification OpenAPI. Le problème inclut la forme de réponse souhaitée, les cas d’erreur pour les abonnements manquants ou annulés et un lien vers le point de terminaison existant /subscriptions/{id} à suivre comme modèle. Vous pouvez confier le ticket à GitHub Copilot CLI et lui faire générer le squelette de la route, du contrôleur et des tests, puis ouvrir une pull request.
Exemple de flux de travail
GitHub Copilot CLI peut lire le ticket directement depuis GitHub, planifier le travail, écrire le code, exécuter vos tests et ouvrir une pull request.
Afficher le problème dans son contexte
Démarrez à la racine du référentiel et référencez le problème par URL ou owner/repo#number.
GitHub Copilot CLI utilise le GitHub serveur MCP pour extraire le corps du problème, les commentaires et les éléments liés, puis conserve ce contexte disponible pour le reste de la session.
Read octo-org/billing-api#482 and any issues or PRs it links to. Summarize what needs to be implemented before we plan the work.
Read octo-org/billing-api#482 and any issues or PRs it links to.
Summarize what needs to be implemented before we plan the work.
Rédiger un plan d’implémentation avec /plan
Passez en mode plan pour que GitHub Copilot CLI réfléchisse au changement avant de modifier des fichiers.
/plan Implement the subscription lookup endpoint described in the issue.
Follow the same conventions as the existing GET /subscriptions/{id} endpoint.
/plan Implement the subscription lookup endpoint described in the issue.
Follow the same conventions as the existing GET /subscriptions/{id} endpoint.
Remarque
La réponse suivante est un exemple. Les réponses Copilot Chat ne sont pas déterministes, vous pouvez donc obtenir une réponse différente de celle affichée ici.
GitHub Copilot CLI retourne un plan similaire à :
1. Add a `getPlanForSubscription` method in `src/services/subscriptionService.ts` that reuses the existing billing client, throws `NotFoundError` when the subscription or plan does not exist, and throws `CancelledSubscriptionError` when the subscription has been cancelled.
1. Add a `GET /subscriptions/:id/plan` route in `src/routes/subscriptions.ts`, mirroring the error handling in the sibling `GET /subscriptions/:id` route and mapping `CancelledSubscriptionError` to a `410` response.
1. Update `openapi/subscriptions.yaml` with the new path, response schema, and `404` and `410` responses.
1. Add unit tests in `test/services/subscriptionService.test.ts` and `test/routes/subscriptions.test.ts` covering the success case, missing subscription, cancelled subscription, and missing plan.
1. Run the test suite and update the changelog entry.
Passez en revue le plan, signalez tout ce qui vous semble incorrect et demandez à GitHub Copilot CLI de le réviser avant de l’approuver. Par exemple, vous pouvez répondre avec Use the existing error classes in src/errors—NotFoundError for missing subscriptions or plans and CancelledSubscriptionError for cancelled subscriptions rather than introducing new ones et mettre à jour les étapes affectées.
Lancer l’implémentation et diriger en fonction des besoins
Approuvez le plan de démarrage du codage. GitHub Copilot CLI effectue les étapes une à la fois, montrant chaque modification avant de l’appliquer. S’il pointe dans la mauvaise direction, interrompez et redirigez.
Par exemple, supposons qu’une GitHub Copilot CLI nouvelle requête de base de données s’ajoute dans votre getPlanForSubscription méthode au lieu de réutiliser le client de facturation sur lequel votre équipe est normalisée. Vous pouvez l’arrêter et le diriger :
Don't add a new query here. The billing client in src/clients/billingClient.ts already exposes a getPlan method. Use that and update the service to handle its NotFound response.
Don't add a new query here. The billing client in
src/clients/billingClient.ts already exposes a getPlan method.
Use that and update the service to handle its NotFound response.
GitHub Copilot CLI modifie le code et continue avec les étapes restantes du plan.
Générer et exécuter des tests unitaires
Lorsque GitHub Copilot CLI atteint la phase de test, il génère des tests qui correspondent aux modèles de vos fichiers de test existants. Pour le point de terminaison du plan, il peut ajouter des cas tels que :
- Renvoie l’enregistrement du forfait pour un abonnement actif.
- Retourne
404lorsque l’abonnement n’existe pas. - Retourne
410une fois l’abonnement annulé. - Retourne
404lorsque l’abonnement n’a pas de plan attaché.
Après avoir écrit les tests, GitHub Copilot CLI les exécute dans le terminal afin que vous puissiez voir les résultats immédiatement.
Run the test suite for the new endpoint and fix any failures.
Run the test suite for the new endpoint and fix any failures.
Si un test échoue, GitHub Copilot CLI lit la sortie de l’échec, met à jour l’implémentation et réexécrit jusqu’à ce que la suite de tests soit verte. Passez en revue chaque correctif pour vous assurer qu’il traite la cause racine plutôt que de le masquer.
Passer en revue les modifications avec /diff
Permet /diff d’afficher une vue consolidée des modifications apportées à l’ensemble de la session.
/diff
/diff
Si quelque chose semble incorrect, demandez-lui GitHub Copilot CLI de le réviser avant de vous valider. Par exemple, vous pouvez répondre avec Revert the formatting changes in src/routes/subscriptions.ts to only keep the new route handler pour limiter à nouveau le diff aux modifications prévues.
Ouvrir une pull request
Une fois la fonctionnalité implémentée, testée et revue, demandez à GitHub Copilot CLI d’ouvrir une pull request. Il utilise le serveur MCP GitHub pour pousser la branche et créer la pull request
Commit the changes on a new branch, push it, and open a pull request against main. Link it to octo-org/billing-api#482 and summarize the implementation, the tests added, and any follow-up work.
Commit the changes on a new branch, push it, and open a pull request
against main. Link it to octo-org/billing-api#482 and summarize the
implementation, the tests added, and any follow-up work.
GitHub Copilot CLI renvoie l’URL de la pull request afin que vous puissiez poursuivre à partir de là.