Git Azure函数:需要Creds的子模块:致命:无法读取的用户名
我有一个Azure Function应用程序,可以从VisualStudio.com团队服务git存储库持续部署。它利用子模块。其中的一个子模块在GitHub上公开提供,它可以完美地加载,没有任何问题 另一个子模块由VisualStudio.com团队服务Git回购(与主回购在同一帐户下)担保。此子模块在部署时出错 ,子模块通过以下两个git命令启动:Git Azure函数:需要Creds的子模块:致命:无法读取的用户名,git,azure,deployment,continuous-deployment,azure-functions,Git,Azure,Deployment,Continuous Deployment,Azure Functions,我有一个Azure Function应用程序,可以从VisualStudio.com团队服务git存储库持续部署。它利用子模块。其中的一个子模块在GitHub上公开提供,它可以完美地加载,没有任何问题 另一个子模块由VisualStudio.com团队服务Git回购(与主回购在同一帐户下)担保。此子模块在部署时出错 ,子模块通过以下两个git命令启动: git submodule sync git submodule update --init --recursive --force 第一个命
git submodule sync
git submodule update --init --recursive --force
第一个命令似乎执行正确,第二个命令似乎出错。以下是输出:
Cloning into 'secure-submodule'...
Fatal: COMException encountered.\r
bash: /dev/tty: No such device or address
error: failed to execute prompt script (exit code 1)
fatal: could not read Username for ''https://myVSStudio.visualstudio.com': Invalid argument
fatal: clone of 'https://myVSStudio.visualstudio.com/DefaultCollection/_git/secure-submodules' into submodule path 'secure-submodules' failed
我假设这是因为第二个子模块需要凭证,但我不确定如何提供凭证
由于主要项目连续部署是从受保护的git存储库中提取的,因此我认为子模块也可以这样做。作为一种解决方法,我更新了.gitmodules文件,以便URL包含用户名和密码,并且我创建了一个用于URL的 e、 g.在.gitmodules中,url已更改:
[submodule "mySub"]
path = mySub
url = https://mysub:PERSONAL_ACCESS_TOKEN_VALUE@YOUR_GIT_REPO_URL
可通过以下步骤进行设置:
当我创建个人访问令牌时,我将其仅限于代码读取操作
我不喜欢这个解决方案的地方(我希望其他人有更好的):
我刚刚在一个私有代理上运行Azure管道时遇到了同样的问题,这个解决方案可能适合您所拥有的。我已经在运行
git config--global credential.helper cache
的Host Agent上配置了git凭据缓存,分别输入用户名和密码以及个人访问令牌和令牌的名称git config--global credential.helper store
它存储一个字符串,如https://[pat_name]:[token]@[owner].visualstudio.com
on。git凭据在我的情况下不起作用,但可能有助于您的情况。我知道你可能已经摆脱了这个问题,但我希望它能帮助任何仍在努力解决这个问题的人