CLI GitHub Copilot 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 CLI GitHub Copilot 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 à CLI GitHub Copilot 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
CLI GitHub Copilot 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.
CLI GitHub Copilot 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 CLI GitHub Copilot 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 Discussion avec Copilot ne sont pas déterministes, vous pouvez donc obtenir une réponse différente de celle affichée ici.
CLI GitHub Copilot 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 à CLI GitHub Copilot 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. CLI GitHub Copilot 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 CLI GitHub Copilot 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.
CLI GitHub Copilot modifie le code et continue avec les étapes restantes du plan.
Générer et exécuter des tests unitaires
Lorsque CLI GitHub Copilot 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, CLI GitHub Copilot 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, CLI GitHub Copilot 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 CLI GitHub Copilot 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 à CLI GitHub Copilot 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.
CLI GitHub Copilot renvoie l’URL de la pull request afin que vous puissiez poursuivre à partir de là.