是否可以在 azure yml 管道(azure git)上检出 TFVC 存储库?

is it possible to checkout TFVC repository on azure yml pipeline(azure git)?

我正在创建存储在 azure git 存储库中的 YAML 管道,但是我需要通过如下引用检查存在于同一项目中的 TFVC 存储库,

   resources: 
   repositories: 
   - repository: Shared 
     name: Playground/Shared 
     type: tfvc 
     ref: master #branch name

我知道我们可以查看 azure Git、GitHub、Bitbucket 存储库。谁能澄清一下我们是否可以参考。

YAML 管道目前不支持 TFVC。

作为解决方法,您可以将 TFVC 迁移到 Git。

您还可以创建经典的 UI 构建管道而不是 YAML 管道。经典 UI 管道支持 TFVC。

更新:

  • 将 tfsvc 存储库中的代码引入构建代理。

您可以使用 TFVC Get items rest api 来获取物品。在您的管道中添加脚本任务以调用其余部分 api 并将项目保存在构建代理中。

请检查以下示例 powershell 脚本:获取个人访问令牌。请参考文档here.

 $url = "$(System.TeamFoundationCollectionUri)$(System.TeamProject)/_apis/tfvc/items?scopePath=path&recursionLevel=full&api-version=5.1"

 $PAT= "Personal access token"
 $base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($PAT)"))
 $result = Invoke-RestMethod -Uri $url -Method Get -Header @{Authorization = "Basic $base64AuthInfo"} 

 $files= $result.value | where { !$_.isFolder} | select path, url

 foreach($file in $files){
    $path = "$(System.DefaultWorkingDirectory)\" + $file.path.Substring(2)
    New-Item -Path  $path -ItemType File -Force
    Invoke-RestMethod -Uri $file.url -Method get -Header @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"} -OutFile $path
  }

以上脚本调用获取项目 Api 并获取项目 url 和路径 ($files= $result.value | where { !$_.isFolder} | select path, url)

然后获取每个项目并保存到$(System.DefaultWorkingDirectory)

例如,如果我的 scopePath 是 $/MyProject/,那么项目将保存到 $(System.DefaultWorkingDirectory)/MyProject/