CLI do GitHub Copilot pode ler um GitHub problema, propor um plano de implementação e elaborar alterações de código que atendam aos requisitos. Como o fluxo de trabalho é conversacional, você pode corrigir suposições, apontar para arquivos relevantes e refinar a abordagem como CLI do GitHub Copilot funciona.
Cenário de exemplo
Imagine que você trabalhe em uma equipe de plataforma que mantém uma API de cobrança de Node.js interna que alimenta as assinaturas do cliente. Um gerente de produto abre uma issue solicitando um novo endpoint GET /subscriptions/{id}/plan que retorna o plano associado a uma determinada assinatura, juntamente com testes de unidade e uma atualização da especificação OpenAPI. A tarefa inclui o formato de resposta desejado, casos de erro para assinaturas inexistentes ou canceladas e um link para o endpoint existente /subscriptions/{id} para servir de padrão. Você pode entregar a issue para CLI do GitHub Copilot e pedir que ele gere a estrutura da rota, do controlador e dos testes e, em seguida, abra um pull request.
Fluxo de trabalho de exemplo
CLI do GitHub Copilot pode ler o problema diretamente de GitHub, planejar o trabalho, gravar o código, executar seus testes e abrir uma solicitação de pull.
Colocar o problema no contexto
Inicie na raiz do repositório e faça referência ao problema por URL ou owner/repo#number.
CLI do GitHub Copilot usa o GitHub servidor MCP para buscar o corpo do problema, comentários e itens vinculados e, em seguida, mantém esse contexto disponível para o restante da sessão.
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.
Elaborar um plano de implementação com /plan
Alterne para o modo de planejamento para que CLI do GitHub Copilot pense na mudança antes de mexer em qualquer arquivo.
/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.
Observação
A resposta a seguir é um exemplo. Respostas do Bate-papo do Copilot são não determinísticas, portanto, você pode obter uma resposta diferente da mostrada aqui.
CLI do GitHub Copilot retorna um plano semelhante a:
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.
Revise o plano, conteste qualquer coisa que pareça errada e peça a CLI do GitHub Copilot que o revise antes de aprová-lo. Por exemplo, você pode responder com Use the existing error classes in src/errors—NotFoundError for missing subscriptions or plans and CancelledSubscriptionError for cancelled subscriptions rather than introducing new ones e fazer com que isso atualize as etapas afetadas.
Iniciar a implementação e orientar conforme necessário
Aprove o plano para iniciar a codificação. CLI do GitHub Copilot funciona pelas etapas uma de cada vez, mostrando cada edição antes de aplicá-la. Se seguir na direção errada, interrompa e redirecione.
Por exemplo, suponha que CLI do GitHub Copilot adicione uma nova consulta ao banco de dados no seu método getPlanForSubscription em vez de reutilizar o cliente de faturamento que sua equipe padronizou. Você pode parar e guiá-lo:
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 do GitHub Copilot revisa o código e continua com as etapas restantes do plano.
Gerar e executar testes de unidade
Quando CLI do GitHub Copilot chega à etapa de teste, ele gera a estrutura de testes que segue os padrões dos seus arquivos de teste existentes. Para o ponto de extremidade do plano, ele pode adicionar casos como:
- Retorna o registro do plano de uma assinatura ativa.
- Retorna
404quando a assinatura não existe. - Retorna
410quando a assinatura foi cancelada. - Retorna
404quando a assinatura não tem nenhum plano anexado.
Depois de escrever os testes, CLI do GitHub Copilot execute-os no terminal para que você possa ver os resultados imediatamente.
Run the test suite for the new endpoint and fix any failures.
Run the test suite for the new endpoint and fix any failures.
Se um teste falhar, CLI do GitHub Copilot lerá a saída da falha, atualizará a implementação e executará novamente até que o conjunto de testes fique verde. Examine cada correção para verificar se ela está abordando a causa raiz em vez de mascara-la.
Examine as alterações com /diff
Use /diff para ver uma exibição consolidada das alterações feitas em toda a sessão.
/diff
/diff
Se algo parecer errado, peça a CLI do GitHub Copilot que o revise antes de fazer o commit. Por exemplo, você pode responder com Revert the formatting changes in src/routes/subscriptions.ts to only keep the new route handler para restringir o diff novamente às alterações desejadas.
Abrir uma solicitação de pull
Depois que o recurso for implementado, testado e revisado, peça CLI do GitHub Copilot para abrir uma solicitação de pull. Ele usa o servidor MCP GitHub para enviar a branch e criar o 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 do GitHub Copilot retorna com a URL do pull request para que você possa dar continuidade a ele a partir daí.