Azure 管道子模块克隆失败

Gil*_*Hsu 3 git azure-devops azure-pipelines-build-task azure-pipelines azure-pipelines-yaml

我创建了主项目

https://dev.azure.com/GilbertHsu/pipeline_test

以 3 个项目作为主项目中的子模块

https://dev.azure.com/GilbertHsu/otherProjectA

https://dev.azure.com/GilbertHsu/otherProjectB

https://dev.azure.com/GilbertHsu/otherProjectC

其中使用每个项目的默认设置。在管道 azure-pipelines.yml 中:

jobs:
- job: MacOS
  strategy:
    matrix:
      mac:
        imageName: 'macOS-10.14'
  pool:
    vmImage: $(imageName)
  steps:
    - template: azure-pipelines-ci/macos.yml
Run Code Online (Sandbox Code Playgroud)

在 azure-pipelines-ci/macos.yml 中:

# macOS-specific:
# ref. https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabls=schema%2Cparameter-schema&tabs=schema%2Cparameter-schema#checkout
steps:
  - checkout: self
    clean: true
    path: pipeline-test 
    submodules: true
Run Code Online (Sandbox Code Playgroud)

.gitmodules:

[submodule "otherProjectA"]
    path = otherProjectA
    url = ../../../otherProjectA/_git/otherProjectA
[submodule "otherProjectB"]
    path = otherProjectB
    url = ../../../otherProjectB/_git/otherProjectB
[submodule "otherProjectC"]
    path = otherProjectC
    url = ../../../otherProjectC/_git/otherProjectC
Run Code Online (Sandbox Code Playgroud)

当我触发管道时,它总是失败

Submodule 'otherProjectA' (https://GilbertHsu@dev.azure.com/GilbertHsu/otherProjectA/_git/otherProjectA) registered for path 'otherProjectA'
Submodule 'otherProjectB' (https://GilbertHsu@dev.azure.com/GilbertHsu/otherProjectB/_git/otherProjectB) registered for path 'otherProjectB'
Submodule 'otherProjectC' (https://GilbertHsu@dev.azure.com/GilbertHsu/otherProjectC/_git/otherProjectC) registered for path 'otherProjectC'
Cloning into '/Users/runner/work/1/VMCPS/otherProjectA'...
remote: TF401019: The Git repository with name or identifier otherProjectA does not exist or you do not have permissions for the operation you are attempting.
fatal: repository 'https://dev.azure.com/GilbertHsu/otherProjectA/_git/otherProjectA/' not found
fatal: clone of 'https://GilbertHsu@dev.azure.com/GilbertHsu/otherProjectA/_git/otherProjectA' into submodule path '/Users/runner/work/1/VMCPS/otherProjectA' failed
Failed to clone 'otherProjectA'. Retry scheduled
Cloning into '/Users/runner/work/1/VMCPS/otherProjectB'...
remote: TF401019: The Git repository with name or identifier otherProjectB does not exist or you do not have permissions for the operation you are attempting.
fatal: repository 'https://dev.azure.com/GilbertHsu/otherProjectB/_git/otherProjectB/' not found
fatal: clone of 'https://GilbertHsu@dev.azure.com/GilbertHsu/otherProjectB/_git/otherProjectB' into submodule path '/Users/runner/work/1/VMCPS/otherProjectB' failed
Failed to clone 'otherProjectB'. Retry scheduled
Cloning into '/Users/runner/work/1/VMCPS/otherProjectC'...
remote: TF401019: The Git repository with name or identifier otherProjectC does not exist or you do not have permissions for the operation you are attempting.
fatal: repository 'https://dev.azure.com/GilbertHsu/otherProjectC/_git/otherProjectC/' not found
fatal: clone of 'https://GilbertHsu@dev.azure.com/GilbertHsu/otherProjectC/_git/otherProjectC' into submodule path '/Users/runner/work/1/VMCPS/otherProjectC' failed
Failed to clone 'otherProjectC'. Retry scheduled
Cloning into '/Users/runner/work/1/VMCPS/otherProjectA'...
remote: TF401019: The Git repository with name or identifier otherProjectA does not exist or you do not have permissions for the operation you are attempting.
fatal: repository 'https://dev.azure.com/GilbertHsu/otherProjectA/_git/otherProjectA/' not found
fatal: clone of 'https://GilbertHsu@dev.azure.com/GilbertHsu/otherProjectA/_git/otherProjectA' into submodule path '/Users/runner/work/1/VMCPS/otherProjectA' failed
Failed to clone 'otherProjectA' a second time, aborting
Run Code Online (Sandbox Code Playgroud)

谷歌搜索这样的错误信息,我已经测试了以下方法

  1. 设置每个子模块的权限:我向每个子模块的“存储库权限”的用户添加了“pipeline_test Build Service”,但仍然失败。
  2. 在 url 中使用 PAT 但不起作用。

我已经被这个问题困住了好几天,真的需要善意的帮助。

Lan*_*SFT 9

Project Settings=>Settings(你的管道所在的项目),禁用这两个限制:

在此处输入图片说明

像我一样禁用这两个选项,然后问题将得到解决。


Alf*_*igo 6

如果您很难找到此选项,截至回答此问题时,该选项已更改为“保护对 YAML 管道中存储库的访问”。禁用此选项将允许检出子模块。在此输入图像描述