Skip to content

Elaborazione Repository Remoti

Utilizzo Base

Elabora repository pubblici:

bash
# Usando l'URL completo
repomix --remote https://github.com/user/repo
# Usando il formato abbreviato GitHub
repomix --remote user/repo

Puoi anche passare la forma abbreviata owner/repo direttamente, senza --remote:

bash
repomix yamadashy/repomix

Poiché owner/repo assomiglia anche a un percorso locale relativo, Repomix lo tratta come un repository remoto solo quando non esiste alcun file o directory locale con quel nome e il repository è raggiungibile su GitHub. Un percorso locale esistente ha sempre la precedenza; per forzare la gestione locale di un percorso in forma owner/repo, anteponi ./ (ad esempio, repomix ./owner/repo). Se l'argomento corrisponde al pattern ma il repository non è raggiungibile (ad esempio un repository privato o un errore di battitura), Repomix lo gestisce come un percorso locale.

Selezione Branch e Commit

bash
# Branch specifico
repomix --remote user/repo --remote-branch main
# Tag
repomix --remote user/repo --remote-branch v1.0.0
# Hash del commit
repomix --remote user/repo --remote-branch 935b695

Prerequisiti

  • Git deve essere installato
  • Connessione Internet
  • Accesso in lettura al repository

Controllo dell'Output

bash
# Posizione di output personalizzata
repomix --remote user/repo -o custom-output.xml
# Con formato XML
repomix --remote user/repo --style xml
# Rimuovere i commenti
repomix --remote user/repo --remove-comments

Utilizzo con Docker

bash
# Elabora e salva nella directory corrente
docker run -v .:/app -it --rm ghcr.io/yamadashy/repomix \
  --remote user/repo
# Output verso una directory specifica
docker run -v ./output:/app -it --rm ghcr.io/yamadashy/repomix \
  --remote user/repo

Sicurezza

Per motivi di sicurezza, i file di configurazione (repomix.config.*) presenti nei repository remoti non vengono caricati per impostazione predefinita. Questo impedisce ai repository non attendibili di eseguire codice tramite file di configurazione come repomix.config.ts.

La configurazione globale e le opzioni CLI continuano a essere applicate normalmente.

Per considerare attendibile la configurazione di un repository remoto:

bash
# Usando il flag CLI
repomix --remote user/repo --remote-trust-config

# Usando la variabile d'ambiente
REPOMIX_REMOTE_TRUST_CONFIG=true repomix --remote user/repo

WARNING

--remote-trust-config concede alla configurazione del repository remoto lo stesso livello di fiducia della tua macchina. Una configurazione considerata attendibile può eseguire comandi arbitrari (tramite input.processors) e leggere file locali al di fuori del repository (ad esempio tramite output.instructionFilePath o pattern di inclusione che usano ../). Usala solo per repository di cui ti fidi pienamente e che hai revisionato, con la stessa cautela che adotteresti prima di eseguire un npm install o un Makefile proveniente da una fonte sconosciuta.

Prompt di conferma

Quando ti fidi della configurazione di un repository in un terminale interattivo, repomix mostra la configurazione che sta per essere eseguita e ti chiede di confermare prima di caricarla:

  • Sì, solo questa volta: fidati solo di questa esecuzione.
  • Sì, e non chiedere più per questo repository: viene ricordato finché i tuoi file temporanei non vengono cancellati, e solo finché quel file di configurazione resta invariato (un file di configurazione modificato richiede nuovamente conferma). Nota che questo controllo riguarda solo il file di configurazione stesso: una configurazione .ts / .js può importare altri file, che non fanno parte di questo controllo.
  • No: interrompi senza eseguire la configurazione.

Il prompt viene saltato quando passi --force, in shell non interattive come la CI (la configurazione viene considerata attendibile come prima, mantenendo funzionanti le automazioni esistenti), oppure una volta che hai scelto di fidarti sempre di quel repository.

Per il modello di fiducia completo — cosa può fare una configurazione attendibile, come la configurazione mostrata è protetta dalla manomissione e dove viene memorizzata la decisione "non chiedere più" — vedi Sicurezza.

Quando si usa --config con --remote, è richiesto un percorso assoluto:

bash
repomix --remote user/repo --config /home/user/repomix.config.json

Problemi Comuni

Problemi di Accesso

  • Assicurati che il repository sia pubblico
  • Verifica l'installazione di Git
  • Controlla la connessione Internet

Repository Grandi

  • Usa --include per selezionare percorsi specifici
  • Abilita --remove-comments
  • Elabora i branch separatamente

Risorse correlate

Released under the MIT License.