可以使用GIT访问哪些TFS 2018存储库?

问题描述

我正在研究连接到Windows自托管代理的Azure管道。
我知道我可以访问存储在Intranet TFS 2018服务器上的项目,但是我始终遇到“身份验证失败”错误

这取决于TFS中的项目类型吗?
在VS 2019中连接到我的项目之前,我从未使用过Git。 在同一帐户下的计算机上,我使用VS2019处理该项目的地方,我尝试了以下命令:

git clone https://tfs.myCie.com/DefaultCollection/myProject/

> Result:   cloning into ' myProject '... 
> fatal: repository 'https://tfs.myCie.com/DefaultCollection/myProject/' not found

git clone https://user:<PAT>@tfs.myCie.com/DefaultCollection/myProject/

> Result:   cloning into ' myProject '... 
> fatal: Authentication Failed for 'https://user:<PAT>@tfs.myCie.com/DefaultCollection/myProject/'

我目前属于这个TFS项目中的组:“ Contributors”和“ Project Administrators”。

我想知道问题出在哪里,这可能是git代理错误吗?
可以是TFS访问权限错误吗?
可能是项目类型问题,也许无法从Git访问TFS中的某些项目吗? 是否要求在服务器上启用基本身份验证?

更新1

在第一次尝试创建获取本地TFS实例上的源的管道时,它不起作用,我怀疑是因为代理上的git配置为使用代理,并且该代理不允许连接到内部TFS服务器。

我想解决此问题,并创建一个获取源但运行脚本以克隆代理上的存储库然后构建它的管道:

enter image description here

由于管道中的脚本无法正常工作,我在VS2019确实连接到“ repo”的电脑上的命令提示符中尝试了该程序。

您可能有一个观点说它看起来不像是一个回购协议,我从未使用过Git,我曾经打开过Visual Studio,打开了Team Explorer,选择了我的项目,然后进行了结帐和签入。

直到今天,我注意到Team Explorer显示名称 Azure DevOps Server ,但我知道背后是TFS 2018服务器:

enter image description here

我了解我可以使用Git从我的TFS服务器中克隆“仓库”,但是也许这种情况没有解决,这就是为什么我要问几个问题...因为我什至不确定我想做什么,您问我得到的克隆存储库URI是什么,但我找不到克隆存储库URI:(

通常,我被要求为我们所有的项目创建Azure DevOps管道,它们都必须在Windows自托管代理上运行,我们在GitHub,Azure Repos和在'prem上都有项目TFS服务器。我有前两个的管道,但是无法建立与TFS的连接。

更新2

谢谢您的指导,看来我的UI与您显示的UI不一致,或者我没有找到它,但是我确实在寻找它...

这是我在TFS中打开项目时看到的:

enter image description here

解决方法

要查找Git克隆URL,可以登录TFS 2018,然后导航至[Required()] ,可以在克隆选项

中获得Git克隆URL。

enter image description here

yaml管道的Resources字段当前不支持在TFS中获取存储库。

因此,在Azure Devops Pipelines中,可以使用以下两种方法在TFS中获取git repo。

  1. 使用Git Clone命令:您可以在URL中添加PAT:

例如:

Project ->Code -> Files
  1. 您可以创建“其他Git服务连接”并使用“其他Git”选项。此方法只能在经典编辑器中使用。

enter image description here

注意:您需要确保Windows Self-Hosted代理可以访问TFS2018。换句话说,代理所在的本地计算机必须能够访问TFS2018。

更新

对于TFVC存储库:

您可以尝试使用以下命令:

pool:
  name: Default

workspace:
  clean: all
steps:

- checkout: none

- task: CmdLine@2
  inputs:
    script: |
      cd $(Build.sourcesdirectory)
      
      git clone -b master http://<PAT>@tfs2018:8080/tfs/DefaultCollection/_git/<RepoName>