Skip to main content

Usando o Copilot para trabalhar em um issue

Saiba como atribuir issues ao GitHub Copilot, monitorar o progresso conforme o Copilot trabalha no issue e, em seguida, usar comentários de revisão da solicitação de pull request para solicitar ao Copilot para iterar em seu trabalho.

Quem pode usar esse recurso?

O Agente de codificação do Copilot está disponível com os planos GitHub Copilot Pro, GitHub Copilot Pro+, GitHub Copilot Business e GitHub Copilot Enterprise. O acesso para avaliações do Copilot será disponibilizado em breve. O agente está disponível em todos os repositórios, exceto naqueles em que ele foi explicitamente desabilitado e repositórios de propriedade de contas de usuário gerenciadas.
Sign up for Copilot

Observação

O Agente de codificação do Copilot está em versão prévia pública e está sujeito a alterações. Durante a versão prévia, o uso do recurso está sujeito a Termos de licença de pré-lançamento do GitHub.

Para obter uma visão geral do Agente de codificação do Copilot, confira Sobre o agente de codificação do Copilot.

Introdução

Você pode atribuir um issue do GitHub ao Copilot como faria com um desenvolvedor de software humano. O Copilot começará a trabalhar no issue, gerará uma pull request e, quando terminar de trabalhar, solicitará uma revisão sua. Para saber mais, confira Sobre o agente de codificação do Copilot.

Se você não tiver usado o Copilot para trabalhar em um issue antes, poderá encontrar alguns conselhos úteis para obter bons resultados em Práticas recomendadas de uso do Copilot para trabalhar em tarefas.

Como atribuir um issue ao Copilot

Você pode pedir ao Copilot para começar a trabalhar em um issue atribuindo o issue ao Copilot.

Você pode atribuir um issue ao Copilot:

Como atribuir um issue ao Copilot no GitHub.com

Você pode atribuir um issue ao Copilot no GitHub.com exatamente do mesmo jeito que atribui outro usuário.

  1. Em GitHub, acesse a página principal do repositório.

  2. No nome do seu repositório, clique em Problemas.

    Captura de tela da página principal de um repositório. Na barra de navegação horizontal, uma guia, rotulada como "Problemas", é destacada em laranja escuro.

  3. Abra o issue a atribuir ao Copilot.

  4. No menu do lado direito, clique em Responsáveis.

    Captura de tela da barra lateral direita de um problema. Há um cabeçalho "Destinatários" com o contorno em laranja escuro.

  5. Clique em Copilot na lista de atribuições.

    Captura de tela da janela "Assignees" em um issue. O Copilot está disponível na lista.

Dica

Quando você atribui um issue ao Copilot, ele recebe o título do issue, a descrição e os comentários existentes no momento. Após a atribuição do issue, o Copilot não estará ciente e, portanto, não reagirá a comentários adicionais adicionados a ele. Se você tiver mais informações ou alterações no requisito original, adicione-as como um comentário à pull request que o Copilot gera.

Você também pode atribuir issues ao Copilot de outros lugares no GitHub.com:

  • Na lista de issues na página Issues do repositório.
  • Ao exibir um issue no GitHub Projetos.

Atribuindo um issue ao Copilot por meio da API do GitHub

Você pode atribuir issues ao Copilot usando a API do GraphQL.

Criar e atribuir um novo issue

  1. Verifique se você está autenticando com a API usando um token de usuário, por exemplo, um personal access token ou um token de usuário para servidor do GitHub App.

  2. Verifique se o Agente de codificação do Copilot está habilitado no repositório verificando se o suggestedActors do repositório na API do GraphQL inclui o Copilot. Substitua octo-org pelo proprietário do repositório e octo-repo pelo nome do repositório.

    GraphQL
    query {
      repository(owner: "octo-org", name: "octo-repo") {
        suggestedActors(capabilities: [CAN_BE_ASSIGNED], first: 100) {
          nodes {
            login
            __typename
    
            ... on Bot {
              id
            }
    
            ... on User {
              id
            }
          }
        }
      }
    }
    

    Se o Agente de codificação do Copilot estiver habilitado para o usuário e no repositório, o primeiro nó retornado da consulta terá o valor de login copilot-swe-agent.

  3. Anote o valor id desse logon.

  4. Busque a ID global do GraphQL do repositório no qual você deseja criar o issue, substituindo octo-org pelo proprietário do repositório e octo-repo pelo nome do repositório.

    GraphQL
    query {
      repository(owner: "octo-org", name: "octo-repo") {
        id
      }
    }
    
  5. Crie o issue com a mutação createIssue. Substitua REPOSITORY_ID pela ID retornada da etapa anterior e BOT_ID pela ID retornada da etapa anterior àquela.

    GraphQL
    mutation {
      createIssue(input: {repositoryId: "REPOSITORY_ID", title: "Implement comprehensive unit tests", body: "DETAILS", assigneeIds: ["BOT_ID"]}) {
        issue {
          id
          title
          assignees(first: 10) {
            nodes {
              login
            }
          }
        }
      }
    }
    

Atribuir um issue existente

  1. Verifique se você está autenticando com a API usando um token de usuário, por exemplo, um personal access token ou um token de usuário para servidor do GitHub App.

  2. Verifique se o Agente de codificação do Copilot está habilitado no repositório verificando se o suggestedActors do repositório na API do GraphQL inclui o Copilot. Substitua octo-org pelo proprietário do repositório e octo-repo pelo nome do repositório.

    GraphQL
    query {
      repository(owner: "monalisa", name: "octocat") {
        suggestedActors(capabilities: [CAN_BE_ASSIGNED], first: 100) {
          nodes {
            login
            __typename
    
            ... on Bot {
              id
            }
    
            ... on User {
              id
            }
          }
        }
      }
    }
    

    Se o Agente de codificação do Copilot estiver habilitado para o usuário e no repositório, o primeiro nó retornado da consulta terá o valor de login copilot-swe-agent.

  3. Busque a ID global do GraphQL do issue que deseja atribuir ao Copilot, substituindo monalisa pelo proprietário do repositório, octocat pelo nome e 9000 pelo número do issue.

    GraphQL
    query {
      repository(owner: "monalisa", name: "octocat") {
        issue(number: 9000) {
          id
          title
        }
      }
    }
    
  4. Atribua o issue existente ao Copilot usando a mutação replaceActorsForAssignable. Substitua ISSUE_ID pela ID retornada da etapa anterior e BOT_ID pela ID retornada da etapa anterior àquela.

    GraphQL
    mutation {
      replaceActorsForAssignable(input: {assignableId: "ISSUE_ID", actorIds: ["BOT_ID"]}) {
        assignable {
          ... on Issue {
            id
            title
            assignees(first: 10) {
              nodes {
                login
              }
            }
          }
        }
      }
    }
    

Acompanhando o progresso do Copilot com relação a seu issue

Logo após atribuir um issue ao Copilot, o Copilot deixará uma reação 👀 sobre o issue.

Captura de tela de um issue atribuído a Copilot. Copilot deixou uma reação de ícone de olhos.

Alguns segundos depois, Copilot abrirá um rascunho de pull request vinculada ao issue original. Um evento será exibido na linha do tempo do issue, vinculando-se à pull request.

Captura de tela de um issue com um evento de linha do tempo mostrando que uma pull request vinculada foi aberta.

Copilot iniciará uma agent session para trabalhar no issue. Um evento "Copilot started work" será exibido na linha do tempo da pull request e, à medida que os dados do Copilot funcionarem, ele atualizará o corpo da pull request com atualizações de status regulares e enviará confirmações por push ao branch.

Todas as suas sessões, passadas e presentes, podem ser vistas e rastreadas na página Agents. Confira Como acompanhar as sessões do Copilot.

Captura de tela de uma pull request com uma série de eventos da linha do tempo, incluindo "Copilot started work".

Se você quiser verificar o que Copilot está fazendo, clique em View session. O visualizador de log de sessão é exibido, mostrando um log ativo como Copilot funciona no issue. Se você quiser impedir que Copilot trabalhem no issue, clique em Stop session. Confira Como acompanhar as sessões do Copilot.

Depois que Copilot terminar, a sessão do agente terminará e Copilot solicitará uma revisão sua, disparando uma notificação. Além disso, um evento "Copilot finished work" será exibido na linha do tempo da pull request.

Captura de tela de uma linha do tempo da pull request com eventos "Copilot requested review" e "Copilot finished work".

Como trabalhar com o Copilot em uma pull request

Depois que Copilot terminarem de trabalhar no issue, examine com atenção a pull request e comente tudo o que precisar ser alterado. Confira Revisando uma pull request criada pelo Copilot.

Leitura adicional