Щоб провести один HTTPS-клон через проксі, не змінюючи середовище процесу Python і не записуючи глобальне налаштування Git, передайте змінні в 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',
    },
)

Використовуйте URL проксі безпосередньо в рядках Python. Для публічного репозиторію та маршруту, де дозволені публічні проксі, список HTTP-проксі дає відповідні кінцеві точки. Лапки групування оболонки не входять до цього URL. URL репозиторію SSH використовує транспорт SSH, тому цей приклад потребує HTTPS-URL репозиторію.

Якщо Git усе одно йде іншим шляхом

Відображення env оновлює середовище, яке успадковує підпроцес Git; воно не замінює це середовище порожнім. Перевірте успадковані значення no_proxy на обхід і власну конфігурацію Git http.proxy, яка може перекрити відповідне налаштування середовища.

Ви також можете зустріти приклади, що передають config у клон. Це викликає опцію --config команди Git clone і записує конфігурацію в новий репозиторій. Обирайте це лише тоді, коли налаштування має пережити цей процес клонування; конфігурація Git під час клонування проти лише під час виклику пояснює різницю.

Схожі статті