Inviare un clone GitPython attraverso un proxy HTTP
Passa un ambiente proxy a Repo.clone_from, poi controlla le impostazioni Git che possono sovrascriverlo.
Per inviare un clone HTTPS attraverso un proxy senza modificare l'ambiente del processo Python né scrivere un'impostazione Git globale, passa le variabili a Repo.clone_from:
from git import Repo
repo = Repo.clone_from(
'https://git.example/team/project.git',
'/path/to/new-checkout',
env={
'http_proxy': 'http://proxy.example:8080',
'https_proxy': 'http://proxy.example:8080',
},
)Usa l'URL del proxy direttamente nelle stringhe Python. Per un repository pubblico e un percorso in cui sono consentiti proxy pubblici, la lista di proxy HTTP fornisce endpoint candidati. Le virgolette di raggruppamento della shell non fanno parte di quell'URL. Un URL di repository SSH segue invece il trasporto SSH, quindi questo esempio richiede un URL di repository HTTPS.
Se Git prende ancora un'altra strada
La mappatura env aggiorna l'ambiente ereditato dal sottoprocesso Git; non lo sostituisce con un ambiente vuoto. Controlla i valori no_proxy ereditati per un'elusione e la configurazione http.proxy di Git, che può sovrascrivere l'impostazione d'ambiente corrispondente.
Potresti anche incontrare esempi che passano config al clone. Questo richiama l'opzione --config di Git clone e scrive la configurazione nel nuovo repository. Sceglilo solo quando l'impostazione deve sopravvivere a questo processo di clonazione; configurazione Git al momento del clone rispetto a solo all'invocazione spiega la differenza.