🌿Git e GitHub
O Harness Maxxing mostra o git em imagens: as branches, os commits, o que ainda não foi enviado (push). Em dois lugares:
- Em uma conversa, para todo mundo: quando o Claude fala de um repositório, ele adiciona um pequeno bloco
gite o app desenha o grafo real desse repositório, lido ao vivo no servidor (ou no GitHub). - A página Git (barra lateral -> Git): todos os repositórios do servidor e da sua conta do GitHub, com os seus direitos em cada um; clique em um para ver todas as branches e commits. Ative em Configurações -> Recursos.
Tudo é somente leitura: nada nunca é commitado, enviado (push) ou alterado a partir dessas telas.
Grafos no chat
Pergunte "em que pé estamos no repositório acme?", "o que ainda não foi enviado?", "mostre as branches": o Claude responde com um bloco como este, desenhado como um grafo (o Telegram mostra o texto):
```git
repo: /root/sites/acme
branches: main, feat-login
limit: 20
highlight: 3f2a9c1
```
| Linha | Significado |
|---|---|
repo: |
a pasta do clone no servidor (caminho absoluto), ou github:owner/name para um repositório do GitHub |
branches: |
opcional: somente essas branches (caso contrário, todas) |
limit: |
opcional: quantos commits (30 por padrão, no máximo 300) |
highlight: |
opcional: commits a destacar (os que o Claude está comentando) |
Clique em um commit para ver a mensagem completa, o autor, a data e os arquivos que ele alterou (linhas +/-). Código mostra o texto do bloco; Abrir no Git abre a página completa (quando a página Git está ativada).
Clique com o botão direito em uma etiqueta de branch ou em um commit (toque longo no celular), no chat ou na página Git: Abrir no GitHub abre essa branch ou esse commit em github.com em uma nova aba, Copiar o link do GitHub copia o endereço, e o último item copia o nome da branch ou o SHA do commit. Uma branch ou um commit de um clone só abre depois de enviado (push) para o origin no GitHub (antes disso, o item diz "ainda não está no GitHub"); um grafo lido do GitHub abre tudo.
O repositório precisa estar dentro da raiz de arquivos (/root por padrão): as mesmas pastas que a página Arquivos mostra.
A página Git
Git na barra lateral (atalho G e depois B), depois de ativar Página Git e GitHub em Configurações -> Recursos (desativada por padrão; os grafos nas conversas funcionam de qualquer jeito).
- Neste servidor: todos os repositórios git encontrados sob a raiz de arquivos, uma vez cada (pastas como
node_modulessão ignoradas), com os commits ainda não enviados (↑) ou não baixados (↓), os arquivos alterados, o último commit e o repositório correspondente no GitHub. As branches não são listadas aqui: elas estão no grafo do repositório (um cartão só cita a branch atual quando ela não émain/master, ou diz detached). As pastas de trabalho extras de um clone (git worktree add, uma pasta por branch) não aparecem como repositórios próprios: o clone informa quantas tem (+3 worktrees). - GitHub: todos os repositórios da sua conta (os seus, os das suas organizações, aqueles em que você colabora) com o seu direito em cada um (admin, maintain, write, triage, read), privado ou público, e "clonado aqui" quando o servidor tem uma cópia.
- Clique em um repositório: o grafo das suas branches e commits (os 200 mais recentes, Mostrar mais até 1.000), os detalhes de um commit (em uma folha que sobe da parte de baixo no celular ou no tablet) e, para o GitHub, os pull requests abertos. Um clone ligado ao GitHub tem um botão para alternar entre a cópia do servidor e o GitHub (que mostra todas as branches, até as que não foram baixadas no servidor). Com muitas branches, as linhas do grafo se apertam em uma tela estreita e nomes de branch longos terminam com "…" (nome completo ao passar o mouse).
Conectar o GitHub
Os clones do servidor não precisam de nada. Para a sua conta do GitHub, adicione um token:
- No GitHub: Settings -> Developer settings -> Fine-grained tokens -> Generate new token (github.com/settings/personal-access-tokens). Acesso aos repositórios: todos os repositórios; permissões: Contents, Metadata e Pull requests, somente leitura.
- No Harness Maxxing: Configurações -> Chaves -> adicione-o, por exemplo como
GITHUB_TOKEN.
Todos os tokens do GitHub do cofre são usados, qualquer que seja o nome (GITHUB_TOKEN, GITHUB_PAT_BLOG...), além do token do backup da memória: adicione um por conta para ver várias contas, ou tokens limitados a alguns repositórios. A página lista as contas conectadas no topo (clique em uma para filtrar), reúne os repositórios delas (cada um uma vez, com o seu melhor direito), mostra quais chaves enxergam cada repositório e avisa quando o GitHub recusa uma chave (expirada, revogada) sem deixar de mostrar as outras. Para abrir um repositório, o servidor usa uma chave que tenha acesso a ele. Os tokens ficam no servidor: a página só vê os nomes deles.
Segurança
A página apenas lê os repositórios: ela nunca faz fetch, pull ou push. Um repositório encontrado no servidor pode vir de qualquer lugar (um arquivo extraído, um clone feito pelo Claude); por isso, as configurações de um repositório que fariam o git executar um programa durante a leitura (monitor de arquivos, verificação de assinatura, filtros de limpeza, diff externo, hooks) são desativadas, e um repositório pertencente a outro usuário do sistema não é aberto (a verificação de propriedade do próprio git). Quando o limite de requisições do GitHub é atingido, a página avisa isso em vez de mostrar os repositórios como se estivessem faltando.