Azure Databricks -从笔记本克隆git存储库

icomxhvb  于 2023-11-15  发布在  Git
关注(0)|答案(1)|浏览(140)

我正在尝试使用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是否依赖于另一个我需要更新的配置,或者我应该使用另一种方法?

cgyqldqp

cgyqldqp1#

GitCommandError:Cmd('git')failed due to:exit code(128)
根据您的描述,您的PAT有足够的权限克隆存储库。
因此,该问题与PAT无关。
此问题的根本原因应该是目标路径('/git/')已经存在,并且不是空目录。
要解决此问题,您需要指定一个路径中不存在的文件夹。然后脚本将创建一个新文件夹并将存储库克隆到New文件夹。
以下是我的样本:

from git import Repo

full_local_path = "C:\kevin1234"

remote = f"https://[email protected]/{Org]/{Project}/_git/{repo}"

Repo.clone_from(remote, full_local_path)

字符串
测试结果:


的数据

相关问题