无法签出 Azure Pipeline 中的 git 子模块(在同一项目内)?

问题描述 投票:0回答:2

我在主项目中添加了一个 git 子模块,它使用相对路径引用子项目。 .gitmodules 看起来像这样:

[submodule "Shared"]
path = Shared
url = ../Shared

Azure 管道配置为自助签出,包括子模块: 文件

azure-pipelines.yaml

enter image description here

构建管道在结账步骤中失败,并给出以下错误: 错误

额外信息:

  • 两个存储库都存在于同一组织和项目中。
  • 两个存储库都是私有的。
  • 我已经检查过在组织和项目设置中禁用“限制作业授权范围”是否有效,但不幸的是没有。

有什么想法吗?

编辑:我在错误屏幕截图中隐藏了 URL,但是当我单击这些 URL 时,我确实得到了存储库的结果,因此它肯定存在。

git azure azure-pipelines git-submodules
2个回答
0
投票

发布此问题后我很快就找到了解决方案:)。

在项目设置中,您应该禁用 YAML 管道安全开关,以便它签出同一项目中的存储库:

enter image description here


0
投票

您需要在 azure-pipelines.ynl 中添加资源块:

resources:
  repositories:
  - repository: submodule-repo-url
    type: git
    name: submodule-name

然后在

steps
子句之前添加一个
uses
子句:

uses:
  repositories:
  - submodule-name

这确保生成的令牌包括对自身存储库和子模块存储库的访问。由于子模块位于同一个项目中,因此只需存储库的名称即可作为存储库 URL。

© www.soinside.com 2019 - 2024. All rights reserved.