Azure YAML管道:如何在Azure DevOps中引用另一个项目中的项目和存储库

4

我在ABC组织工作,它有三个Azure DevOps项目,分别是A、B和C。所有内容都在Azure Repos下,这意味着我们没有使用GitHub。

我正在尝试从项目A和B中的repos中执行Project C的checkout。每个项目都将拥有自己的微服务,但共享平台服务将自动化需要部署到AKS的内容。

问题陈述:当我尝试在Project C中从项目A和B中checkout repos时,我会遇到以下错误。代码片段如下:

resources:
  repositories:
    - repository: microservice-a
      type: git
      name: 'InPlaceCommunications/microservice-a'
      ref: master

    - repository: microservice-b
      type: git
      name: 'Project B/microservice-b'
      ref: master

然而,我得到以下错误:

remote: TF401019: The Git repository with name or identifier microservice-a does not exist or you do not have permissions for the operation you are attempting.

任何指导都将不胜感激。
我注意到我有完全的权限克隆repo,但在Pipeline中却没有发生。
1个回答

7

远程:TF401019:名称或标识符为microservice-a的Git仓库不存在,或您没有执行所尝试的操作的权限。

根据错误消息,您需要检查以下两点:

  1. 检查选项将非发布管道的作业授权范围限制为当前项目是否在项目C ->项目设置 ->设置禁用。您需要禁用此选项。

enter image description here

  1. 检查服务账户:项目集合构建服务(组织名称)项目A/B -> 项目设置 -> 存储库 -> 目标仓库 -> 安全中是否具有读取权限。

enter image description here


非常感谢你,Kevin!我完成了第一个任务,它完美地运行了。然而,我的本地仓库来自C项目,却出现了以下错误:remote: TF200016:以下项目不存在:Project C。请验证项目名称是否正确,并且该项目存在于指定的Azure DevOps服务器上。 fatal: 无法从远程仓库读取。请确保您拥有正确的访问权限并且仓库存在。 - learner
2
我找到了问题所在。与你提出的解决方案无关。团队成员删除了 Azure DevOps 项目中的空格,因此我才会出现错误! - learner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接