【问题标题】:Want to read xml file from published artifacts in azure devops build pipeline想要从 azure devops 构建管道中的已发布工件中读取 xml 文件
【发布时间】:2021-04-13 14:57:12
【问题描述】:

我正在使用 azure-DevOps 构建管道来运行邮递员 Newman 报告并将其发布为管道工件。 我的管道确实发布了管道工件(邮递员的 HTML 报告,并且还在 XML 文件中提供了 Newman 报告)。

我的要求是使用 azure-DevOps API 来读取 XML 文件。 & 这个 API 我必须从我的程序 (nodeJs/Python) 中调用。

知道怎么做吗?提前致谢 注意:我看到 ADO 仍在处理 fileId(不确定如何获取 fileID) https://github.com/MicrosoftDocs/vsts-rest-api-specs/issues/381

【问题讨论】:

  • 您有机会尝试以下解决方法吗?进展如何?
  • 您好,这个问题有更新吗?请随时留下您的评论~只是提醒this
  • 非常感谢 Levi Lu-MSFT。这对我真的很有帮助

标签: azure-devops build-pipeline


【解决方案1】:

在 azure pipeline 中发布的工件提供了下载 url 来获取文件。您可以直接从构建摘要门户获取下载 url。见下文:

去发布的工件-->点击你要下载的文件的3dots

您可以直接调用下载url来读取代码中的xml文件。请参见下面的 powershell 脚本示例:

$url = "https://dev.azure.com/{org}/_apis/resources/Containers/{containerId}/{artifactName}?itemPath=artifactName%2Fbuild.xml"

$PAT="Personal access token"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($PAT)"))

$xmlContent = Invoke-RestMethod -Uri $url -Headers @{authorization = "Basic $base64AuthInfo"} -Method get

如果您不想从 UI 门户获取下载 url。您可以致电Artifacts - Get Artifact 获取容器ID。获取容器id后即可获取xml文件的下载url。

GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/artifacts?artifactName={artifactName}&api-version=6.0

请看下面来自上述rest api的示例结果。

下载地址:

https://dev.azure.com/{org}/_apis/resources/Containers/{containerId}/{artifactName}?itemPath={artifactName}%2F{xmlfileName.xml}

【讨论】:

    猜你喜欢
    • 2020-12-23
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 2020-03-31
    • 2019-05-22
    • 1970-01-01
    相关资源
    最近更新 更多