我正在尝试使用GitPython库从笔记本中克隆托管在Azure DevOps上的git存储库。我生成了一个对git存储库具有读/写访问权限的个人访问令牌。
这样做的目的是将git存储库保留在DBFS中,因为它不仅会填充notebook源,还会填充输出和MLFlow模型。
为了做到这一点,我尝试了以下方法,但仍然面临来自Git的错误128:
from git import Repo
git_url = 'https://<myPAT>@dev.azure.com/<org>/<project>/_git/<repo>'
repo = Repo.clone_from(git_url, '/git/')
字符串
总是导致错误,没有更多的细节:
GitCommandError: Cmd('git') failed due to: exit code(128)
型
我从其他地方检查,我的PAT工作得很好。
我还尝试用Base64编码PAT,并使用下面的命令添加头'Authorization : Basic <base64PAT>'
,但结果是一样的。
encodedBytes= base64.urlsafe_b64encode(PAT.encode("utf-8"))
base64PAT= str(encodedBytes, "utf-8")
header = 'Authorization : Basic ' + base64PAT
git.Git().config_writer().set_value("http", "extraHeader", header).release()
型
有什么提示吗?GitPython是否依赖于另一个我需要更新的配置,或者我应该使用另一种方法?
1条答案
按热度按时间cgyqldqp1#
GitCommandError:Cmd('git')failed due to:exit code(128)
根据您的描述,您的PAT有足够的权限克隆存储库。
因此,该问题与PAT无关。
此问题的根本原因应该是目标路径(
'/git/'
)已经存在,并且不是空目录。要解决此问题,您需要指定一个路径中不存在的文件夹。然后脚本将创建一个新文件夹并将存储库克隆到New文件夹。
以下是我的样本:
字符串
测试结果:
的数据