Para enviar un clon HTTPS a través dun proxy sen cambiar a contorna do proceso de Python nin escribir un axuste global de Git, pasa as variábeis 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 o URL do proxy directamente nas cadeas de Python. Para un repositorio público e unha ruta onde se permiten proxies públicos, a lista de proxies HTTP ofrece puntos finais candidatos. As comiñas de agrupamento da shell non forman parte dese URL. Un URL de repositorio SSH segue o transporte SSH, así que este exemplo require un URL de repositorio HTTPS.

Se Git aínda toma outra ruta

A asignación env actualiza a contorna que herda o subproceso de Git; non substitúe esa contorna por unha baleira. Revisa os valores herdados de no_proxy por se hai unha excepción e a configuración propia de Git http.proxy, que pode anular o axuste de contorna correspondente.

Tamén podes atopar exemplos que pasan config ao clon. Iso invoca a opción --config de Git clone e escribe configuración no repositorio novo. Escólleo só cando o axuste deba sobrevivir a este proceso de clonación; configuración de Git no momento de clonar fronte a só na invocación explica a diferenza.

Artigos relacionados