Enviar un clon de GitPython a través de un proxy HTTP
Pasa un entorno de proxy a Repo.clone_from y luego revisa los ajustes de Git que pueden anularlo.
Para enviar un clon HTTPS a través de un proxy sin cambiar el entorno del proceso de Python ni escribir un ajuste global de Git, pasa las variables 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 la URL del proxy directamente en las cadenas de Python. Para un repositorio público y una ruta donde se permiten proxies públicos, la lista de proxies HTTP ofrece puntos finales candidatos. Las comillas de agrupación del shell no forman parte de esa URL. Una URL de repositorio SSH sigue el transporte SSH, así que este ejemplo requiere una URL de repositorio HTTPS.
Si Git sigue tomando otra ruta
La asignación env actualiza el entorno que hereda el subproceso de Git; no lo sustituye por uno vacío. Revisa los valores heredados de no_proxy por si hay una excepción y la configuración propia de Git http.proxy, que puede anular el ajuste de entorno correspondiente.
También puedes encontrar ejemplos que pasan config al clon. Eso invoca la opción --config de Git clone y escribe configuración en el repositorio nuevo. Elígelo solo cuando el ajuste deba sobrevivir a este proceso de clonación; configuración de Git en el momento de clonar frente a solo en la invocación explica la diferencia.