Envoyer un clone GitPython à travers un proxy HTTP
Passez un environnement de proxy à Repo.clone_from, puis vérifiez les réglages Git qui peuvent le supplanter.
Pour envoyer un clone HTTPS à travers un proxy sans modifier l'environnement du processus Python ni écrire un réglage Git global, passez les variables à 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',
},
)Utilisez l'URL du proxy directement dans les chaînes Python. Pour un dépôt public et une route où les proxys publics sont autorisés, la liste de proxys HTTP fournit des points de terminaison candidats. Les guillemets de regroupement du shell ne font pas partie de cette URL. Une URL de dépôt SSH suit le transport SSH, cet exemple exige donc une URL de dépôt HTTPS.
Si Git emprunte encore un autre chemin
Le mappage env met à jour l'environnement hérité par le sous-processus Git ; il ne remplace pas cet environnement par un environnement vide. Vérifiez les valeurs no_proxy héritées pour un contournement, puis la configuration http.proxy de Git, qui peut supplanter le réglage d'environnement correspondant.
Vous pouvez aussi rencontrer des exemples qui passent config au clone. Cela appelle l'option --config de Git clone et écrit la configuration dans le nouveau dépôt. Ne le choisissez que si le réglage doit survivre à ce processus de clonage ; configuration Git au moment du clone contre seulement à l'appel explique la différence.