{"meta":{"title":"Implémentation d’une fonctionnalité à partir d’un problème de GitHub","intro":"Attribuez un GitHub ticket à GitHub Copilot CLI, puis orientez la conversation vers l’implémentation de la fonctionnalité.","product":"GitHub Copilot","breadcrumbs":[{"href":"/fr/enterprise-cloud@latest/copilot","title":"GitHub Copilot"},{"href":"/fr/enterprise-cloud@latest/copilot/tutorials","title":"Tutoriels"},{"href":"/fr/enterprise-cloud@latest/copilot/tutorials/copilot-cookbook","title":"livre de recettes GitHub Copilot"},{"href":"/fr/enterprise-cloud@latest/copilot/tutorials/copilot-cookbook/generate-code","title":"Générer du code"},{"href":"/fr/enterprise-cloud@latest/copilot/tutorials/copilot-cookbook/generate-code/implement-a-feature","title":"Implémenter une fonctionnalité"}],"documentType":"article"},"body":"# Implémentation d’une fonctionnalité à partir d’un problème de GitHub\n\nAttribuez un GitHub ticket à GitHub Copilot CLI, puis orientez la conversation vers l’implémentation de la fonctionnalité.\n\nGitHub 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.\n\n## Exemple de scénario\n\nImaginez 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.\n\n## Exemple de flux de travail\n\nGitHub Copilot CLI peut lire le ticket directement depuis GitHub, planifier le travail, écrire le code, exécuter vos tests et ouvrir une pull request.\n\n### Afficher le problème dans son contexte\n\nDémarrez à la racine du référentiel et référencez le problème par URL ou `owner/repo#number`.\nGitHub 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.\n\n```text copy\nRead octo-org/billing-api#482 and any issues or PRs it links to. \nSummarize what needs to be implemented before we plan the work.\n```\n\n### Rédiger un plan d’implémentation avec `/plan`\n\nPassez en mode plan pour que GitHub Copilot CLI réfléchisse au changement avant de modifier des fichiers.\n\n```text copy\n/plan Implement the subscription lookup endpoint described in the issue. \nFollow the same conventions as the existing GET /subscriptions/{id} endpoint.\n```\n\n> \\[!NOTE] 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.\n\nGitHub Copilot CLI retourne un plan similaire à :\n\n```text\n1. 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.\n1. 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.\n1. Update `openapi/subscriptions.yaml` with the new path, response schema, and `404` and `410` responses.\n1. 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.\n1. Run the test suite and update the changelog entry.\n```\n\nPassez 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.\n\n### Lancer l’implémentation et diriger en fonction des besoins\n\nApprouvez le plan de démarrage du codage.\nGitHub 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.\n\nPar 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 :\n\n```text copy\nDon't add a new query here. The billing client in \nsrc/clients/billingClient.ts already exposes a getPlan method. \nUse that and update the service to handle its NotFound response.\n```\n\nGitHub Copilot CLI modifie le code et continue avec les étapes restantes du plan.\n\n### Générer et exécuter des tests unitaires\n\nLorsque 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 :\n\n* Renvoie l’enregistrement du forfait pour un abonnement actif.\n* Retourne `404` lorsque l’abonnement n’existe pas.\n* Retourne `410` une fois l’abonnement annulé.\n* Retourne `404` lorsque l’abonnement n’a pas de plan attaché.\n\nAprès avoir écrit les tests, GitHub Copilot CLI les exécute dans le terminal afin que vous puissiez voir les résultats immédiatement.\n\n```text copy\nRun the test suite for the new endpoint and fix any failures.\n```\n\nSi 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.\n\n### Passer en revue les modifications avec `/diff`\n\nPermet `/diff` d’afficher une vue consolidée des modifications apportées à l’ensemble de la session.\n\n```text copy\n/diff\n```\n\nSi 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.\n\n### Ouvrir une pull request\n\nUne 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\n\n```text copy\nCommit the changes on a new branch, push it, and open a pull request \nagainst main. Link it to octo-org/billing-api#482 and summarize the \nimplementation, the tests added, and any follow-up work.\n```\n\nGitHub Copilot CLI renvoie l’URL de la pull request afin que vous puissiez poursuivre à partir de là.\n\n## Lectures complémentaires\n\n* [GitHub Copilot CLI](/fr/enterprise-cloud@latest/copilot/how-tos/copilot-cli)"}