多仓库在检出时抛出TF401019错误

4
我正在尝试在我的流水线中检出不同的存储库。
这些将是完整的URL,因此两个存储库都位于同一个Azure DevOps中:

https://dev.azure.com/company/Services/_git/mylocal

https://dev.azure.com/company/OtherServices/_git/another

我正在尝试在位于Services/mylocal@develop的YAML文件中执行此操作:
steps:
- checkout: self
- checkout: git://OtherServices/another@develop

据我了解,这应该是很简单的。我可以完全访问这两个仓库。然而,我还是遇到了以下问题:
remote: TF401019: The Git repository with name or identifier another does not exist or you do not have permissions for the operation you are attempting.
fatal: repository 'https://dev.azure.com/company/OtherServices/_git/another' not found

我不确定Azure Pipelines是否支持此功能。但如果支持,那么我做错了什么?我们的DevOps人员建议使用PAT尝试,但是如何在checkout中使用PAT呢?我没有找到相关文献。
我还有哪些其他选项?
谢谢!
2个回答

7
我已经复制了你的错误消息: enter image description here 以下是解决方案:
在项目服务中: 前往“项目设置”-> “管道/设置”-> “常规/“限制非发布管道当前项目的作业授权范围”或“限制发布管道当前项目的作业授权范围”。 根据您的管道类型禁用其中一个。
如果ToggleButton是灰色的,请先禁用组织范围的选项: 前往组织设置-> “管道/设置”-> 禁用“常规/“限制非发布管道当前项目的作业授权范围”或“限制发布管道当前项目的作业授权范围”。
完成上述工作后,您可以再次运行您的管道。确保checkout中的项目、存储库和分支名称正确。
更新: 感谢评论区的@Bill Jetzer! 如果您正在使用传统的UI管道,请除了上述设置之外,还需前往您的管道编辑页面。选择“选项”选项卡。在“构建作业”->“构建作业授权范围”中,请确认您选择了“项目集合”。 enter image description here

谢谢,这对我也有用。请参考下面的链接,带有用户界面:http://chamindac.blogspot.com/2020/12/resolving-tf401019-git-repository-with.html - Techiemanu
也对我有用,谢谢。 - meenu
1
不起作用,我使用 Azure 子模块作为存储库。 - Maadiah
1
除了组织和项目级别的“限制作业”设置外,您还必须配置构建管道的“选项”选项卡,将“构建作业授权范围”设置为“项目集合”,而不是“当前项目”。 - Bill Jetzer
@BillJetzer 谢谢您的提醒!您的评论非常有用,我会将其更新到主要答案中,以便更多人受益。如果您不想要它,我会将其删除。 - Jane Ma-MSFT
显示剩余2条评论

1

我在这里分享我的发现,因为我花费了太长时间来解决与此处记录的相同问题。

确保"限制非发布管道的作业授权范围仅限于当前项目"或"限制发布管道的作业授权范围仅限于当前项目"在源项目(例如正在执行的管道)和远程项目(例如使用模板的项目)中都已配置。


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