【问题标题】:How best to download source files from VSTS?如何最好地从 VSTS 下载源文件?
【发布时间】:2018-11-21 16:42:57
【问题描述】:

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

目前我登录到门户网站并单击以 ZIP 格式下载所选项目并将其保存到文件服务器。

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

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

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

很高兴拥有:

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

【问题讨论】:

  • 为什么投反对票?
  • 感谢@PatrickLu-MSFT,但这听起来仍然很复杂,我无法将代码下载到我选择的文件夹中。我很惊讶虽然可以手动下载完整代码的 zip,但这不是通过命令行提供的。我仍在寻找另一种解决方案。

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


【解决方案1】:

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

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

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

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

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

这将在您的构建代理中下载文件,如果它不是您正在使用的机器。您可以结合 Archive FilesWindows Machine File Copy 任务并在构建定义中选择 Scheduled 触发器。

【讨论】:

  • 感谢@PatrickLu-MSFT,但这听起来仍然很复杂,我无法将代码下载到我选择的文件夹中。我很惊讶虽然可以手动下载完整代码的 zip,但这不是通过命令行提供的。我仍在寻找另一种解决方案。
  • 这是该问题的完美解决方案(我猜是 IMO)。它是完全自动化的,并允许您将源代码放在您选择的目录中。 @userSteve,如果看起来很复杂,我建议您了解 Azure DevOps 界面。一旦您了解了数据流,这似乎要简单得多。
  • 我也想做同样的事情。 Bitbucket 让这变得超级简单。向bitbucket.org/myusername/myproject/get/branch-name.tar.gz 发出GET 并下载它并省略源代码控制绑定信息。 curl 非常简单;没有比这更容易的了。
【解决方案2】:

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

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

【讨论】:

【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2019-11-01
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 2010-09-07
    相关资源
    最近更新 更多