CLI de GitHub Copilot puede leer un problema, proponer un GitHub plan de implementación y redactar cambios de código que cumplan los requisitos. Dado que el flujo de trabajo es conversacional, puede corregir las suposiciones, apuntar a los archivos pertinentes y refinar el enfoque tal como CLI de GitHub Copilot funciona.
Escenario de ejemplo
Imagine que trabaja en un equipo de plataforma que mantiene una API de facturación de Node.js interna que impulsa las suscripciones de los clientes. Un responsable de producto abre una incidencia en la que solicita un nuevo endpoint GET /subscriptions/{id}/plan que devuelva el plan asociado a una suscripción dada, junto con pruebas unitarias y una actualización de la especificación OpenAPI. La incidencia incluye el formato de respuesta deseado, los casos de error para suscripciones inexistentes o canceladas, y un enlace al endpoint existente /subscriptions/{id} que debe tomarse como referencia. Puede asignar la incidencia a CLI de GitHub Copilot y pedirle que genere la estructura base de la ruta, el controlador y las pruebas; luego, puede abrir una pull request.
Flujo de trabajo de ejemplo
CLI de GitHub Copilot puede leer el problema directamente desde GitHub, planear el trabajo, escribir el código, ejecutar las pruebas y abrir una solicitud de incorporación de cambios.
Poner el problema en contexto
Comience en la raíz del repositorio y haga referencia al problema por dirección URL o owner/repo#number.
CLI de GitHub Copilot usa el GitHub servidor MCP para capturar el cuerpo del problema, los comentarios y los elementos vinculados y, a continuación, mantiene ese contexto disponible para el resto de la sesión.
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.
Borrador de un plan de implementación con /plan
Cambia al modo de planificación para que CLI de GitHub Copilot analice el cambio antes de modificar ningún archivo.
/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.
Nota:
La respuesta siguiente es un ejemplo. Las respuestas de Chat de Copiloto no son deterministas, por lo que puedes obtener una respuesta diferente a la aquí mostrada.
CLI de GitHub Copilot devuelve un plan similar al siguiente:
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.
Revisa el plan, cuestiona cualquier cosa que no te parezca bien y pide a CLI de GitHub Copilot que lo revise antes de aprobarlo. Por ejemplo, puede responder con Use the existing error classes in src/errors—NotFoundError for missing subscriptions or plans and CancelledSubscriptionError for cancelled subscriptions rather than introducing new ones y hacer que actualice los pasos afectados.
Iniciar la implementación y dirigir según sea necesario
Apruebe el plan para empezar a codificar. CLI de GitHub Copilot funciona a través de los pasos uno a uno, mostrando cada edición antes de aplicarla. Si se dirige a una dirección incorrecta, interrumpa y redirija.
Por ejemplo, supongamos que CLI de GitHub Copilot añade una nueva consulta a la base de datos en tu método getPlanForSubscription en lugar de reutilizar el cliente de facturación que tu equipo ha estandarizado. Puedes detenerlo y dirigirlo:
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 de GitHub Copilot revisa el código y continúa con los pasos del plan restantes.
Generación y ejecución de pruebas unitarias
Cuando CLI de GitHub Copilot llega a la fase de pruebas, genera la estructura base de pruebas que coincide con los patrones de tus archivos de pruebas existentes. Para el endpoint de plan, podría añadir casos como los siguientes:
- Devuelve el registro de plan de una suscripción activa.
- Devuelve
404cuando la suscripción no existe. - Devuelve
410cuando se ha cancelado la suscripción. - Devuelve
404cuando la suscripción no tiene ningún plan adjunto.
Después de escribir las pruebas, CLI de GitHub Copilot las ejecuta en el terminal para que pueda ver los resultados inmediatamente.
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 se produce un error en una prueba, CLI de GitHub Copilot lee la salida del error, actualiza la implementación y vuelve a ejecutarse hasta que el conjunto de pruebas sea verde. Revise cada corrección para asegurarse de que aborda la causa principal en lugar de enmascararla.
Revisión de los cambios con /diff
Use /diff para ver una vista consolidada de los cambios realizados en la sesión.
/diff
/diff
Si algo parece incorrecto, pida CLI de GitHub Copilot que lo revise antes de confirmarlo. Por ejemplo, puede responder con Revert the formatting changes in src/routes/subscriptions.ts to only keep the new route handler para limitar la diferencia a los cambios previstos.
Apertura de una solicitud de incorporación de cambios
Una vez implementada, probada y revisada la característica, pida CLI de GitHub Copilot que abra una solicitud de incorporación de cambios. Usa el servidor MCP GitHub para subir la rama y crear la solicitud de extracción.
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 de GitHub Copilot devuelve la URL de la solicitud de extracción para que puedas continuar a partir de ahí.