🌿Git & GitHub
Harness Maxxing mostra git sotto forma di immagini: i branch, i commit, ciò che non è ancora stato inviato con push. Due posti:
- In una conversazione, per tutti: quando Claude parla di un repository, aggiunge un piccolo blocco
gite l'app disegna il vero grafo di quel repository, letto in diretta dal server (o da GitHub). - La pagina Git (barra laterale -> Git): tutti i repository del server e del tuo account GitHub, con i tuoi diritti su ciascuno; clicca su uno per vedere tutti i suoi branch e commit. Attivala in Impostazioni -> Funzionalità.
Tutto è in sola lettura: da queste viste non viene mai fatto nessun commit, push o modifica.
I grafi nella chat
Chiedi "a che punto siamo con il repository acme?", "cosa non è ancora stato inviato?", "mostrami i branch": Claude risponde con un blocco come questo, disegnato come grafo (Telegram mostra il testo):
```git
repo: /root/sites/acme
branches: main, feat-login
limit: 20
highlight: 3f2a9c1
```
| Riga | Significato |
|---|---|
repo: |
la cartella del clone sul server (percorso assoluto), oppure github:owner/name per un repository GitHub |
branches: |
facoltativo: solo questi branch (altrimenti tutti) |
limit: |
facoltativo: quanti commit (30 per impostazione predefinita, 300 al massimo) |
highlight: |
facoltativo: i commit da evidenziare (quelli di cui parla Claude) |
Clicca su un commit per vedere il messaggio completo, l'autore, la data e i file che ha modificato (righe +/-). Codice mostra il testo del blocco; Apri in Git apre la pagina completa (quando la pagina Git è attiva).
Fai clic con il tasto destro su un'etichetta di branch o su un commit (pressione prolungata su telefono), nella chat o nella pagina Git: Apri su GitHub apre quel branch o commit su github.com in una nuova scheda, Copia il link GitHub ne copia l'indirizzo, e l'ultima voce copia il nome del branch o lo SHA del commit. Un branch o un commit di un clone si apre una volta che è stato inviato con push a origin su GitHub (prima di allora la voce dice "non ancora su GitHub"); un grafo letto da GitHub apre tutto.
Il repository deve trovarsi dentro la radice dei file (/root per impostazione predefinita): le stesse cartelle che mostra la pagina File.
La pagina Git
Git nella barra laterale (scorciatoia G poi B), una volta attivata l'opzione Pagina Git e GitHub in Impostazioni -> Funzionalità (disattivata per impostazione predefinita; i grafi nelle conversazioni funzionano comunque).
- Su questo server: ogni repository git trovato sotto la radice dei file, una sola volta (cartelle come
node_modulesvengono saltate), con i commit non ancora inviati con push (↑) o non ancora scaricati con pull (↓), i file modificati, il suo ultimo commit e il suo repository GitHub. I branch non sono elencati qui: sono nel grafo del repository (una scheda indica il branch attivo solo quando non èmain/master, oppure dice detached). Le cartelle di lavoro aggiuntive di un clone (git worktree add, una cartella per branch) non vengono mostrate come repository a sé: il clone indica quante ne ha (+3 worktrees). - GitHub: ogni repository del tuo account (tuoi, delle tue organizzazioni, quelli a cui collabori) con il tuo diritto su di esso (admin, maintain, write, triage, read), privato o pubblico, e "clonato qui" quando il server ne ha una copia.
- Clicca su un repository: il grafo dei suoi branch e commit (i 200 più recenti, Mostra altri fino a 1.000), i dettagli di un commit (in un pannello dal basso su telefono o tablet), e per GitHub le pull request aperte. Un clone collegato a GitHub ha un pulsante per passare dalla copia del server a GitHub (che mostra tutti i branch, anche quelli non scaricati con fetch sul server). Con molti branch, le linee del grafo si stringono su uno schermo stretto e i nomi lunghi dei branch finiscono con "…" (nome completo al passaggio del mouse).
Collegare GitHub
I cloni del server non richiedono nulla. Per il tuo account GitHub, aggiungi un token:
- Su GitHub: Settings -> Developer settings -> Fine-grained tokens -> Generate new token (github.com/settings/personal-access-tokens). Accesso ai repository: tutti i repository; permessi: Contents, Metadata e Pull requests, in sola lettura.
- In Harness Maxxing: Impostazioni -> Chiavi -> aggiungilo, per esempio come
GITHUB_TOKEN.
Ogni token GitHub del vault viene usato, qualunque sia il suo nome (GITHUB_TOKEN, GITHUB_PAT_BLOG...), più quello del backup della memoria: aggiungine uno per account per vedere più account, oppure token limitati a pochi repository. La pagina elenca in alto gli account collegati (clicca su uno per filtrare), unisce i loro repository (ciascuno una sola volta, con il tuo diritto migliore), mostra quali chiavi vedono ogni repository e segnala una chiave che GitHub rifiuta (scaduta, revocata) continuando a mostrare le altre. Per aprire un repository, il server usa una chiave che ha accesso ad esso. I token restano sul server: la pagina ne vede soltanto i nomi.
Sicurezza
La pagina legge soltanto i repository: non fa mai fetch, pull o push. Un repository trovato sul server può provenire da qualsiasi posto (un archivio estratto, un clone fatto da Claude), quindi le impostazioni di un repository che farebbero eseguire un programma a git durante la lettura (file monitor, verifica delle firme, filtri clean, diff esterno, hook) vengono disattivate, e un repository di proprietà di un altro utente di sistema non viene aperto (il controllo di proprietà di git stesso). Quando il limite di richieste di GitHub viene raggiunto, la pagina lo dice invece di mostrare i repository come mancanti.