O GitHub é uma integração local-first. Seu token fica em
~/.orkestral, criptografado pelo keychain do seu sistema operacional. Nenhum serviço de nuvem do Orkestral o acessa.O que ela habilita
Repositórios
Liste repositórios que você possui, dos quais é colaborador ou que acessa por meio de uma organização, e clone-os como sources.
Pull requests
Liste pull requests abertos e recentes de um repositório, e crie novos pull requests a partir de uma branch.
Code review
Leia o diff de um pull request e publique um review com um resumo e comentários inline em linhas específicas.
Auth segura
Login via Device Flow sem client secret. O token é criptografado em repouso e removido de logs e mensagens de erro.
Requisitos
- Uma conta do GitHub com acesso aos repositórios em que você quer trabalhar.
- Um keychain do sistema operacional disponível para o
safeStoragedo Electron. No macOS, no Windows e na maioria dos desktops Linux ele está presente por padrão. Se estiver ausente, a conexão falha com um erro de criptografia. gitinstalado e no seuPATH. O Orkestral executagit cloneao clonar um repositório.- Acesso de rede a
github.comeapi.github.com.
| Escopo | Por que é necessário |
|---|---|
repo | Acesso de leitura e escrita aos seus repositórios, incluindo os privados, para clonar, listar PRs, criar PRs e publicar reviews. |
read:user | Ler seu perfil (login, nome de exibição, avatar) para identificar a conta conectada. |
Como conectar
O Orkestral usa o GitHub OAuth Device Flow. Você autoriza o Orkestral nogithub.com inserindo um código curto, então nenhuma senha ou secret jamais passa pelo app.
Inicie a conexão
Abra a integração com o GitHub nas configurações e escolha conectar. O Orkestral solicita um código de dispositivo e mostra um user code mais um link de verificação.
Autorize no GitHub
O Orkestral abre seu navegador na página de verificação. Insira o user code e então aprove os escopos solicitados para sua conta.
O código de dispositivo expira após uma janela fixa (o GitHub retorna o tempo limite quando o fluxo começa). Se ele expirar antes de você aprovar, inicie a conexão novamente para obter um código novo.
Clonando um repositório
Quando você clona um repositório como source, o Orkestral executagit clone com o token armazenado injetado apenas para esse único comando:
- O token é passado por um
http.extraHeaderem memória (Authorization: Basiccomx-access-token), de modo que ele nunca é gravado no.git/configdo repositório clonado. GIT_TERMINAL_PROMPT=0é definido, então o git nunca trava em um prompt de senha interativo.- O progresso do clone é transmitido de volta para a UI.
- Quaisquer credenciais são removidas da saída de erro antes que ela seja exibida para você.
Branch opcional para fazer checkout. Quando omitida, o git clona a branch padrão do repositório.
Profundidade de clone opcional. Quando definida como um número positivo, o Orkestral executa um clone raso (
--depth) por velocidade. Você pode buscar o histórico completo depois, se precisar. Quando omitida, o clone é completo.Pull requests e reviews
Uma vez conectado, os agentes e o ferramental de review podem usar estas capacidades contra qualquer repositório que você possa acessar:| Capacidade | Comportamento |
|---|---|
| Listar repositórios | Retorna repositórios com afiliação owner, collaborator e organization_member, ordenados pelo push mais recente (até 500). |
| Branch padrão | Resolve a branch padrão de um repositório (por exemplo main ou dev) para usar como base de PR. |
| Listar pull requests | Retorna PRs abertos e fechados recentemente, ordenados pela atualização mais recente, paginados automaticamente (até 1000). |
| Ler diff de PR | Busca um diff unificado de um pull request, usado pelo code review. |
| Criar pull request | Abre um PR de uma branch head para uma branch base, com body e flag de draft opcionais. |
| Publicar review | Cria um review do GitHub que agrupa um resumo mais comentários inline em arquivos e linhas específicos. |
Comentários de review e eventos
Um review publicado carrega um body de resumo de nível superior e zero ou mais comentários inline. Cada comentário inline aponta para um caminho de arquivo, uma linha e um lado do diff.Em qual lado do diff o comentário se fixa.
RIGHT é a nova versão do arquivo; LEFT é a versão antiga.O veredito de review que o GitHub registra.
COMMENT deixa feedback sem veredito, APPROVE aprova o PR e REQUEST_CHANGES o bloqueia.Ao criar um pull request, abre-o como draft em vez de um PR pronto para review.
Capacidades e limites
- A listagem de repositórios retorna no máximo 500 repositórios (5 páginas de 100). Se você tiver mais, os que receberam push mais recentemente vêm primeiro.
- A listagem de pull requests retorna no máximo 1000 PRs (10 páginas de 100), com a atividade mais recente primeiro.
- O clone é raso apenas quando você passa uma profundidade; caso contrário, ele puxa o histórico completo.
- O token é criptografado com o keychain do sistema operacional. Se o keychain estiver indisponível, tanto a conexão quanto qualquer ação que use o token falham com um erro de criptografia claro.
- O Orkestral conversa com a API REST do GitHub fixada na versão
2022-11-28.
Configuração
Variável de ambiente que sobrescreve o client ID do OAuth App empacotado. Defina-a quando quiser rodar o Device Flow contra o seu próprio GitHub OAuth App (útil para desenvolvimento). Seu app precisa ter Enable Device Flow ativado.
github.com/settings/connections/applications/<client id>.
Solução de problemas
O Device Flow não está habilitado neste OAuth App
O Device Flow não está habilitado neste OAuth App
Isso acontece com um client ID personalizado cujo OAuth App não permite o Device Flow. Vá em
github.com/settings/applications, abra o app, marque Enable Device Flow e salve. O client ID padrão do Orkestral já tem isso habilitado.Client ID inválido ou desconhecido
Client ID inválido ou desconhecido
O GitHub rejeitou o client ID (
incorrect_client_credentials ou invalid_client). Verifique ORKESTRAL_GITHUB_CLIENT_ID. O OAuth App precisa existir e o ID precisa corresponder exatamente. Remova a variável para voltar ao app empacotado.O código expirou antes de eu aprová-lo
O código expirou antes de eu aprová-lo
O código de dispositivo expirou. Inicie a conexão novamente para obter um user code novo e então aprove-o prontamente no GitHub.
Eu aprovei, mas diz acesso negado
Eu aprovei, mas diz acesso negado
Você recusou a autorização no GitHub ou aprovou uma conta diferente. Reinicie a conexão e aprove com a conta correta.
Criptografia não disponível
Criptografia não disponível
Seu sistema operacional não expôs um keychain utilizável, então o Orkestral não consegue criptografar ou descriptografar o token. Isso é comum em configurações Linux mínimas sem um serviço de secrets. Instale ou desbloqueie um keychain (por exemplo o GNOME Keyring) e então reconecte.
git clone falha
git clone falha
Confirme que o
git está instalado e no seu PATH, que você ainda tem acesso ao repositório e que seu token não foi revogado. A saída de erro é higienizada para ocultar credenciais, então o final da mensagem do git indica a causa real (por exemplo uma branch ausente ou um erro de permissão). Se o token foi revogado, reconecte a conta.Relacionados
Adapters
Os providers que dão energia aos seus agentes, incluindo o Forge local.
Sources
Adicione repositórios e pastas para sua equipe trabalhar.