GitHub Copilot-CLI kann ein GitHub Problem lesen, einen Implementierungsplan vorschlagen und Codeänderungen entwerfen, die den Anforderungen entsprechen. Da der Workflow dialogbasiert ist, können Sie Annahmen korrigieren, auf relevante Dateien verweisen und den Ansatz verfeinern, während GitHub Copilot-CLI arbeitet.
Beispielszenario
Stellen Sie sich vor, Sie arbeiten an einem Plattformteam, das eine interne Node.js Abrechnungs-API verwaltet, die Kundenabonnements unterstützt. Ein Produktmanager öffnet ein Problem, das einen neuen GET /subscriptions/{id}/plan Endpunkt anfordert, der den an ein bestimmtes Abonnement angefügten Plan zurückgibt, zusammen mit Komponententests und einer Aktualisierung der OpenAPI-Spezifikation. Das Problem enthält das gewünschte Antwort-Shape, Fehlerfälle für fehlende oder stornierte Abonnements und einen Link zum vorhandenen /subscriptions/{id} Endpunkt, dem sie als Muster folgen sollen. Sie können das Problem an GitHub Copilot-CLI übergeben und das Grundgerüst für die Route, den Controller und die Tests erstellen lassen und dann einen Pull Request öffnen.
Beispielworkflow
GitHub Copilot-CLI kann das Issue direkt aus GitHub lesen, die Arbeit planen, den Code schreiben, Ihre Tests ausführen und einen Pull Request öffnen.
Das Problem in den Kontext ziehen
Beginnen Sie im Stammverzeichnis des Repositorys, und verweisen Sie auf das Problem nach URL oder owner/repo#number.
GitHub Copilot-CLI verwendet den GitHub MCP-Server, um den Problemtext, Kommentare und verknüpfte Elemente abzurufen, und hält diesen Kontext für die restliche Sitzung zur Verfügung.
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.
Erstellen Sie einen Implementierungsplan mit /plan
Wechseln Sie in den Planmodus, damit GitHub Copilot-CLI die Änderung durchdenkt, bevor Dateien geändert werden.
/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.
Hinweis
Die folgende Antwort ist ein Beispiel. Da die Copilot-Chat-Antworten nicht deterministisch sind, erhältst du möglicherweise eine andere Antwort als die hier beschriebene.
GitHub Copilot-CLI gibt einen Plan ähnlich wie:
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.
Überprüfen Sie den Plan, haken Sie bei allem nach, was nicht stimmt, und bitten Sie GitHub Copilot-CLI, ihn zu überarbeiten, bevor Sie ihn genehmigen. Sie könnten zum Beispiel mit Use the existing error classes in src/errors—NotFoundError for missing subscriptions or plans and CancelledSubscriptionError for cancelled subscriptions rather than introducing new ones antworten, wodurch die betroffenen Schritte aktualisiert werden.
Starten Sie die Implementierung und steuern Sie nach Bedarf
Genehmigen Sie den Plan, um mit dem Codieren zu beginnen. GitHub Copilot-CLI durchläuft die Schritte einzeln, wobei jede Bearbeitung angezeigt wird, bevor sie angewendet wird. Wenn sie in die falsche Richtung geht, unterbrechen Sie sie und lenken Sie sie um.
Nehmen wir zum Beispiel an, GitHub Copilot-CLI fügt in Ihrer getPlanForSubscription-Methode eine neue Datenbankabfrage hinzu, anstatt den Abrechnungs-Client wiederzuverwenden, den Ihr Team als Standard festgelegt hat. Sie können sie anhalten und steuern:
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 überarbeitet den Code und setzt die verbleibenden Planschritte fort.
Generieren und Ausführen von Komponententests
Wenn GitHub Copilot-CLI den Testschritt erreicht, erstellt es Testgerüste, die den Mustern in Ihren vorhandenen Testdateien entsprechen. Für den Plan-Endpunkt könnten beispielsweise Fälle wie diese hinzukommen:
- Gibt den Tarifdatensatz für ein aktives Abonnement zurück.
- Gibt zurück
404, wenn das Abonnement nicht vorhanden ist. - Gibt
410zurück, wenn das Abonnement gekündigt wurde. - Gibt
404zurück, wenn dem Abonnement kein Plan zugeordnet ist.
Nachdem Sie die Tests geschrieben haben, führen Sie sie im Terminal aus, GitHub Copilot-CLI damit Sie die Ergebnisse sofort sehen können.
Run the test suite for the new endpoint and fix any failures.
Run the test suite for the new endpoint and fix any failures.
Wenn ein Test fehlschlägt, GitHub Copilot-CLI liest sie die Fehlerausgabe, aktualisiert die Implementierung und wird erneut ausgeführt, bis die Testsuite grün ist. Überprüfen Sie jeden Fix, um sicherzustellen, dass sie die Ursache adressiert, anstatt sie zu maskieren.
Überprüfen Sie die Änderungen mit /diff
Verwenden Sie /diff, um eine konsolidierte Ansicht der im Verlauf der Sitzung vorgenommenen Änderungen anzuzeigen.
/diff
/diff
Wenn etwas nicht richtig aussieht, bitten Sie GitHub Copilot-CLI, es zu überarbeiten, bevor Sie committen. Sie könnten beispielsweise mit Revert the formatting changes in src/routes/subscriptions.ts to only keep the new route handler antworten, um den Diff wieder auf die beabsichtigten Änderungen einzugrenzen.
Öffnen einer Pullanforderung
Nachdem das Feature implementiert, getestet und überprüft wurde, bitten Sie GitHub Copilot-CLI , eine Pull-Anforderung zu öffnen. Es verwendet den GitHub MCP-Server, um den Branch zu pushen und den Pull Request zu erstellen.
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 meldet die URL der Pullanforderung zurück, damit Sie sie von dort aus vorwärts verschieben können.