签出 Azure DevOps 存储库中另一个项目中的子模块

Bru*_*Pro 4 git azure git-submodules azure-devops

我正在尝试从 azure devops 中的另一个项目中签出子模块。

steps:

- checkout: self
  submodules: true
  persistCredentials: true
  clean: true
Run Code Online (Sandbox Code Playgroud)

检出同一项目中的另一个存储库有效。

目标

在 REPOSITORY B 中添加为子模块 REPOSITORY A。

项目

但是我得到了错误:

Cloning into 'E:/build/Agent5/_work/16/s/.azuredevops'...
fatal: could not read Username for 'https://dev.azure.com': terminal prompts disabled
fatal: clone of 'https://dev.azure.com/ORGANIZATION/PROJECTA/_git/REPOSITORYA' into submodule path 'E:/build/Agent5/_work/16/s/.azuredevops' failed
Run Code Online (Sandbox Code Playgroud)

如何在 Azure DevOps 存储库中使用 YAML 实现这一点?

Pac*_*ac0 8

在项目设置(左侧菜单的底部)中,默认情况下选中了“限制作业授权”选项。

关闭它解决了问题。

项目设置窗格,解决问题的选项

仅供参考,我刚刚将其添加到 yaml 中,steps:如下:

- checkout: self
  submodules: true
Run Code Online (Sandbox Code Playgroud)


Bru*_*Pro 6

添加子模块时,我发现 .gitmodules 中的 url 不正确。

path = .azuredevops
url = https://dev.azure.com/ORGANIZATION/PROJECTA/_git/REPOSITORYA
Run Code Online (Sandbox Code Playgroud)

应该:

path = .azuredevops
url = https://ORGANIZATION@dev.azure.com/ORGANIZATION/PROJECTA/_git/REPOSITORYA
Run Code Online (Sandbox Code Playgroud)

  • 有趣的是,第一个确实可以在本地运行,但只有第二个也可以在 Azure 服务器上运行。:-/ (2认同)