Skip to main content

Implémentation d’une fonctionnalité à partir d’un problème de GitHub

Attribuez un GitHub ticket à CLI GitHub Copilot, puis orientez la conversation vers l’implémentation de la fonctionnalité.

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.

Text
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.

Text
/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 :

Text
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 404 lorsque l’abonnement n’existe pas.
  • Retourne 410 une fois l’abonnement annulé.
  • Retourne 404 lorsque 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.

Text
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.

Text
/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

Text
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à.

Lectures complémentaires