Есть ли способ клонировать (или скачать) частные удаленные репозитории через python с помощью git username-password? - PullRequest
0 голосов
/ 03 июля 2019

Я ищу способ локального клонирования, удаленного частного git-репозитория через python. Git, т.е. не относится к провайдеру контроля версий. В идеале я хочу установить соединение с удаленным репо (провайдером), используя учетные данные, а затем клонировать (эмулировать то, что произойдет через bash) или просто загрузить репо. Это должно происходить через Python-скрипт. Учетные данные будут предоставлены сценарию в качестве закодированных аргументов при выполнении консоли. Все, что я пробовал до сих пор, похоже, имеет причуду, которая не решает проблему полностью.

  • Этот пост, кажется, решает проблему клонирования публичного репо (GitPython): https://stackoverflow.com/a/2472616/6599916
    Поиск по стеку и документации по GitPython Я не нашел способа установить учетные данные для аутентификации через библиотеку GitPython. Если бы кто-то реализовал это, то был бы очень признателен.

  • Кроме того, в прошлом я реализовывал эту версию с приглашением пользователя, но только для GitHub, используя запросы для аутентификации, а затем загружая zip-файл удаленного хранилища. Я все еще могу использовать это, только для github.

    remoteReply = requests.get(remURL, timeout=20, auth=credentials)
    
  • Также я попробовал это: https://github.community/t5/How-to-use-Git-and-GitHub/Clone-private-repo/td-p/12616
    который все еще только для GitHub. Я бы попробовал реализацию gitlab, но это приводит к ошибкам, когда пароль пользователя содержит специальные символы, такие как @. Есть ли способ решить эту проблему?

Наконец, реализация через API провайдеров контроля версий была бы возможной, если бы существовал способ аутентификации через имя пользователя и пароль. Вся информация, касающаяся моей проблемы, распространяется вокруг использования sha или токенов, которые не являются решением в моем случае.

...