Eén GitPython-clone door een HTTP-proxy sturen
Geef een proxy-omgeving aan Repo.clone_from en controleer daarna de Git-instellingen die die kunnen overschrijven.
Om één HTTPS-clone door een proxy te sturen zonder de omgeving van het Python-proces te wijzigen of een globale Git-instelling te schrijven, geef je de variabelen aan 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',
},
)Gebruik de proxy-URL rechtstreeks in de Python-strings. Voor een openbare repository en een route waar openbare proxy's zijn toegestaan, levert de HTTP-proxylijst kandidaat-eindpunten. Shell-groeperingsaanhalingstekens horen niet bij die URL. Een SSH-repository-URL volgt in plaats daarvan het SSH-transport, dus dit voorbeeld vereist een HTTPS-repository-URL.
Als Git toch een andere route neemt
De env-mapping werkt de omgeving bij die het Git-subproces erft; het vervangt die omgeving niet door een lege. Controleer geërfde no_proxy-waarden op een omleiding en controleer Git's eigen http.proxy-configuratie, die de bijbehorende omgevingsinstelling kan overschrijven.
Je kunt ook voorbeelden tegenkomen die config aan de clone meegeven. Dat roept de optie --config van Git clone aan en schrijft configuratie in de nieuwe repository. Kies dat alleen wanneer de instelling dit kloonproces moet overleven; Git-configuratie tijdens het klonen versus alleen bij de aanroep legt het verschil uit.