Pular para o conteúdo

Falar com o Control Center a partir de uma PR do GitHub

Este guia mostra como trabalhar com o Control Center sem sair do GitHub: peça uma revisão com IA na página da PR, faça uma pergunta ao bot em um comentário e continue a conversa nas threads de revisão dela.

O bot é o GitHub App do seu próprio servidor — o mesmo que já autentica as pessoas e executa trabalho em segundo plano. Nada novo é registrado, e nada precisa estar acessível pela internet: o servidor descobre o que foi dito no GitHub por polling, então um notebook atrás de um NAT se comporta exatamente como uma implantação pública.

  • O GitHub App do servidor está registrado e instalado, com Pull requests: read and write (para comentários, threads e reações) e Issues: read (para a busca de comentários). Os dois já estão na lista de permissões daquele guia
  • O repositório está vinculado a um espaço de trabalho no Control Center
  • Sem URL de webhook, sem túnel, sem callback — não há nada a configurar do lado da rede

O login do bot é <appslug>[bot], em que appslug é o nome que você deu ao app ao registrá-lo.

  1. Acesse Configurações → Servidor → Início de sessão único e role até o cartão Apps do fornecedor
  2. Abra o bloco GitHub e clique em Testar
  3. Copie o Login do bot quando ele for preenchido. Se ainda aparecer a dica de vazio, o login é sempre <appslug>[bot] — digite isso, ou a forma curta @appslug

O GitHub não oferece contas de app no autocomplete de @, então o login precisa ser digitado — é por isso que o cartão de configurações leva um clique para copiar. O sufixo [bot] é opcional: @myapp e @myapp[bot] chegam igualmente ao bot.

Duas formas, e ambas iniciam o mesmo pipeline pr_review predefinido que o botão Ask AI inicia:

  • Adicione o rótulo ai-review à PR. É o mais próximo que o GitHub oferece de atribuir o bot como revisor — contas de app não podem ocupar a vaga nativa de revisor solicitado. Não há comentário ao qual reagir, então nada é publicado no GitHub; a revisão começa no Control Center
  • Comente @myapp review (ou apenas @myapp) na conversa da PR. O bot reage com 👀 e então responde quando a revisão tiver começado (ou que uma já está em execução)

Os revisores trabalham no espaço de revisão da PR; leia e publique os achados como em Usar revisão com IA. Publicar de volta no GitHub continua sendo uma decisão sua no Control Center — iniciar uma revisão pelo GitHub não publica nada no GitHub por conta própria.

O rótulo dispara uma vez por PR: adicioná-lo é o pedido, e ele não é rearmado ao ser removido e adicionado de novo. Para executar uma revisão de novo — depois de um push, digamos —, mencione o bot.

Comente na conversa da PR:

@myapp why does the flaky test in runner_test.dart fail on CI but not locally?

O que acontece, em ordem:

  1. O bot reage com 👀 para você saber que o comentário foi visto
  2. A pergunta é publicada no espaço de revisão da PR como você — a mesma atribuição de se você a tivesse digitado no Control Center
  3. Um agente responde no espaço, e a resposta é publicada de volta na PR como um comentário que menciona você com @

Uma pergunta em uma PR que ainda não tem revisão desperta o agente CEO do espaço de trabalho; depois que uma revisão já rodou, o agente que falou por último responde, então os acompanhamentos chegam a quem tem o contexto.

Responda dentro de uma thread de revisão em linha da qual o bot faz parte — um comentário de diff que ele deixou, ou uma resposta que ele publicou naquela thread. Não é preciso mencionar; a thread é o endereçamento:

> @myapp the retry loop looks O(n²) to me
what would the complexity be with the bounded queue instead?

Os vários turnos funcionam do mesmo jeito: cada resposta é outra pergunta na mesma conversa, com o espaço de revisão como contexto, e a resposta volta na thread.

Um acompanhamento na linha do tempo da conversa da PR é um novo comentário de nível superior, então ainda precisa de uma menção com @.

Um comentário do GitHub chega como pouco mais que um login, então o bot resolve o autor antes de fazer qualquer coisa:

  • Sua conta do GitHub precisa estar vinculada à sua identidade no Control Center — entre com o GitHub, ou cole um token, em Configurações → Espaço de trabalho → Perfil e identidade → Hospedagem de código
  • Você precisa ser um membro com um papel de escrita (member, admin ou owner) no espaço de trabalho que vincula o repositório

Qualquer outra pessoa recebe uma única resposta educada explicando o que falta — um login desconhecido (não vinculado, ou vinculado mas que não é membro aqui) e um papel somente leitura são os dois casos — e as palavras dela nunca entram no espaço de trabalho. O rótulo ai-review não passa por esse controle: ele não tem autor, então inicia a revisão no espaço de trabalho que já vincula o repositório.

Item Comportamento
Confirmação de recebimento 👀 em um comentário em cerca de um minuto — o intervalo de varredura. O rótulo ai-review não tem comentário ao qual reagir
Respostas Publicadas como o bot (o app), no mesmo canal em que a pergunta foi feita
Atribuição no espaço A pergunta é sua; o agente roda em seu nome, sob as configurações de autonomia do espaço
Revisões Os achados chegam ao espaço de revisão; publicar no GitHub é manual

A latência de cerca de um minuto é o preço por não precisar de nenhum acesso de rede de entrada. Nada na varredura é urgente, e nada se perde enquanto o servidor está offline — um comentário que chega durante uma parada é capturado na próxima varredura.

Nada acontece para um comentário que menciona o bot.

  • O app está instalado na conta que é dona do repo, e o repo está vinculado a um espaço de trabalho? Um repo não vinculado é ignorado antes de qualquer coisa ser registrada, então vinculá-lo depois ainda entrega
  • Sua conta do GitHub está vinculada, e você é um membro com um papel de escrita? Procure na PR a resposta de recusa do bot — ela diz qual dos casos é
  • Ainda nada? O log do servidor nomeia a varredura e a PR quando algo falha; procure por pr_conversation: (o mecanismo de polling) e github_pr_conversation: (a ponte)

O rótulo não inicia uma revisão.

Ele dispara uma vez por PR. Se uma revisão já rodou, ou o rótulo foi adicionado antes de o servidor sequer ver a PR (a primeira varredura registra o acúmulo em silêncio, em vez de disparar tudo de uma vez), mencione o bot — @myapp review sempre inicia uma, a menos que já haja uma revisão em andamento.

A resposta do bot nunca chegou ao GitHub.

A resposta em si nunca se perde — ela está no espaço de revisão da PR, no Control Center. Uma falha de publicação (GitHub fora do ar, permissões alteradas) é registrada e a resposta não é repetida; pergunte de novo na thread se for importante.