想要从 azure devops 构建管道中已发布的工件中读取 xml 文件

Want to read xml file from published artifacts in azure devops build pipeline

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

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

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

在 azure 管道中发布的工件提供下载 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

请参阅上面的示例结果 api。

下载url:

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