使用HTTPS和gitpython克隆私人仓库

Pyt*_*ice 5 python git gitpython

我正在使用gitpython通过HTTPS克隆git存储库.如果项目是私人仓库,它将提示输入用户名和密码.如何通过pythonically与提示进行交互以传递用户名和密码变量?

from git import Repo

HTTPS_REMOTE_URL = 'https://github.com/username/private-project'
DEST_NAME = 'https-cloned-private-project'
cloned_repo = Repo.clone_from(HTTPS_REMOTE_URL, DEST_NAME)
Run Code Online (Sandbox Code Playgroud)

运行此代码的输出:

$ python example.py
Username for 'https://github.com': example
Password for 'https://example@github.com': 
Run Code Online (Sandbox Code Playgroud)

我知道可以在URL中包含用户名和密码:

HTTPS_REMOTE_URL = 'https://username:password@github.com/username/private-project'
Run Code Online (Sandbox Code Playgroud)

但是,如果这是一个私人回购,我无法提前知道.

sha*_*zhu 6

当使用github访问令牌而不是可能需要2FA的用户名和密码时,它对我有用:

HTTPS_REMOTE_URL = 'https://<access_token>:x-oauth-basic@github.com/username/private-project'