如何最好地从VSTS下载源文件?

时间:2018-06-12 10:08:16

标签: tfs azure-devops azure-devops-rest-api

我需要定期从VSTS帐户(服务器工作区)下载特定项目的一整套最新代码,到文件服务器上的文件夹进行只读归档。

目前,我登录到门户网站,然后单击所选项目的下载为ZIP ,并将其保存到文件服务器。

但我想要一种更自动化的方式,最好是我可以安排从文件服务器本身运行,而不会安装Visual Studio或在线帐户的缓存凭据。

以下任何一种解决方案都可以:

  • 将最新代码下载为zip文件的永久URL
  • REST URL 获取所有最新文件
  • 用于连接VSTS的命令行工具 帐户并将特定项目的所有最新文件 下载到指定的本地文件夹,而不是默认的本地文件夹

很高兴:

  • 选择以ZIP或递归文件夹的形式下载
  • 将文件修改日期设置为签入时间
  • 从下载的文件中删除源代码管理绑定信息
  • 提供用户凭据作为命令行的一部分,而不是假设使用计算机上的默认缓存凭据

3 个答案:

答案 0 :(得分:3)

您可以在Visual Studio,Eclipse或命令行中使用我们的工具,以在您的计算机上保留源代码的本地副本。

更多详情请参阅官方教程:Download (get) files from the Server

另外,如果您想以zip格式下载代码:

您可以单击任何省略号以查找包含Download as Zip选项的菜单。

enter image description here

如果您想要自动化方式,建议您使用构建管道。您可以在构建定义中禁用默认的获取源步骤。并使用您自己的PowerShell脚本来获取源/拉文件到工作区。如何,请关注:Is it able to ignore/disable the first step Get source in vNext Build?

这将在您的构建代理中下载文件,如果它不是您正在使用的计算机。您可以合并Archive Files& Windows Machine File Copy任务,然后在构建定义中选择预定触发器。

答案 1 :(得分:0)

您可以考虑使用代理+构建定义来下载源代码(这可能基于计划发生,也可能在每次签入后触发)。这可以很容易地包括压缩到ZIP文件和一些复制命令。

另一个好处是,构建定义不必在每次运行时重新下载整个源代码存储库 - 相反,它可以配置为只下载获取发生的更改。

答案 2 :(得分:0)

Powershell

$tfsurl = "https://tfs.alogent.com/tfs"
$collection ="/defaultcollection"
$project = "/MyProject"
$api = "/_api/_versioncontrol/itemContentZipped?repositoryId=&path="
$path = "$/MyProject/Source/Datafolder"

Invoke-WebRequest -UseDefaultCredentials -Uri "$tfsurl$collection$project$api$path" -OutFile ".\DataFolder.zip"
Expand-Archive .\Datafolder.zip
相关问题