Einen GitPython-Klon durch einen HTTP-Proxy senden
Übergeben Sie eine Proxy-Umgebung an Repo.clone_from und prüfen Sie dann die Git-Einstellungen, die sie überschreiben können.
Um einen HTTPS-Klon durch einen Proxy zu senden, ohne die Umgebung des Python-Prozesses zu ändern oder eine globale Git-Einstellung zu schreiben, übergeben Sie die Variablen an 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',
},
)Verwenden Sie die Proxy-URL direkt in den Python-Strings. Für ein öffentliches Repository und einen Weg, auf dem öffentliche Proxys erlaubt sind, liefert die HTTP-Proxy-Liste mögliche Endpunkte. Shell-Gruppierungs-Anführungszeichen gehören nicht zu dieser URL. Eine SSH-Repository-URL folgt stattdessen dem SSH-Transport, dieses Beispiel benötigt also eine HTTPS-Repository-URL.
Wenn Git noch einen anderen Weg nimmt
Das env-Mapping aktualisiert die Umgebung, die der Git-Subprozess erbt; es ersetzt diese Umgebung nicht durch eine leere. Prüfen Sie geerbte no_proxy-Werte auf eine Umgehung und prüfen Sie Gits eigene http.proxy-Konfiguration, die die entsprechende Umgebungseinstellung überschreiben kann.
Ihnen können auch Beispiele begegnen, die config an den Klon übergeben. Das ruft die Option --config von Git clone auf und schreibt Konfiguration in das neue Repository. Wählen Sie das nur, wenn die Einstellung diesen Klonprozess überdauern soll; Git-Konfiguration zur Klonzeit gegenüber nur beim Aufruf erklärt den Unterschied.