【问题标题】:Get artifact information through VSTS API通过 VSTS API 获取工件信息
【发布时间】:2018-03-08 04:54:52
【问题描述】:

VSTS API 中有关于如何发出 GET 请求的信息,但我在附加工件的发布 API 信息中找不到任何地方。我正在使用 Postman 提交请求,但响应中的任何地方都没有返回关于工件的数据。如何找到它?

附上神器:

无法显示请求的完整日志,但 GET URI 是 https://xxxx.vsrm.visualstudio.com/xxxx/xxxx/_apis/Release/releases?api-version=4.0-preview.4&definitionId=76,这会返回很多信息,但在工件上没有。运行类似的调用但使用 /build/builds/artifacts 会返回有关工件的信息,但由于某种原因我无法通过发布 API 访问这些信息。

编辑:我通过将发布 ID 添加到 URL 中找到了有关工件的信息。

【问题讨论】:

  • 您想获得关于工件的哪些信息?

标签: api azure-devops release


【解决方案1】:

要通过 GET 发布 REST API 来获取工件,您可以按照以下步骤操作:

  1. 使用请求

    GET https://account.vsrm.visualstudio.com/project/_apis/Release/releases/{releaseID}
    
  2. 使用基本 Auth 进行授权

    您可以使用 PAT 或备用凭据进行基本身份验证。

  3. 发送请求并通过输出获取工件url

    确保退货状态为200 OK。选择 Body -> Pretty -> JSON 作为输出。在输出中搜索artifactSourceVersionUrlid 的值是获取工件的 url。比如网址是https://account.visualstudio.com/_permalink/_build/index?collectionId=fc52d179-f3fd-460b-adb1-5ac84bd0e765&projectId=f7855e29-6f8d-429d-8c9b-41fd4d7e70a4&buildId=1402,如下例所示。

  4. 打开 URL 并获取工件

    URL 是相关的构建页面,在 Artifacts 选项卡中,您可以下载或浏览工件。

【讨论】:

  • 我没有工件 URL。我正在使用我的 PAT 进行身份验证。工件已附加(通过 VSTS 验证),并且 GET 使用 200 代码返回正确的值。
  • 是否填充了 Version.ID 字段?那应该是您可以用来获取工件的 BuildId
  • 如果找不到 URL,主要是因为发布定义没有链接构建工件。请检查您的发布定义并确认是否链接了构建工件。
  • @DenverDev:我可以通过构建端获得工件,但在发行版中找不到它。玛丽娜:是的,附有一个神器。
  • 您能否提供一些屏幕截图,显示发布作业中的工件以及来自 GET account.vsrm.visualstudio.com/project/_apis/Release/releases{releaseID} 的响应 XML
【解决方案2】:

您是否尝试查看 API 的 Get Build Artifacts 部分?这将提供工件的名称以及该工件的下载 URL:

GET https://{instance}/DefaultCollection/{project}/_apis/build/builds/{buildId}/artifacts

是否有您正在查找的特定信息未在此调用中返回?

【讨论】:

  • 有没有办法在发行版或只是构建中做到这一点?
猜你喜欢
  • 1970-01-01
  • 2011-10-31
  • 2018-10-25
  • 2014-09-11
  • 2014-08-21
  • 2018-01-19
  • 2017-12-08
  • 2011-02-20
  • 2019-01-18
相关资源
最近更新 更多