如何使用Azure DevOps REST API获取azure devops发布管道部署日志?

时间:2020-02-12 09:10:01

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline azure-devops-rest-api azure-pipelines-tasks

我遇到了两个REST API,但不确定是否会获取部署日志。

GET https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/{releaseId}/logs?api-version=5.1-preview.2

GET https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/{releaseId}/environments/{environmentId}/deployPhases/{releaseDeployPhaseId}/tasks/{taskId}/logs?api-version=5.1-preview.2
  1. 我尝试了第一个REST API。它以transfer-encoded格式的形式检索数据。如何在NodeJS中从主体检索真实数据?
  2. 为了检查第二个REST API,我没有releaseDeployPhaseIdtaskId的值。我没有在Azure DevOps发布管道门户中获得这些信息。

有人可以帮我吗?预先感谢!

2 个答案:

答案 0 :(得分:1)

您可以在以下API中获取releaseDeployPhaseIdtaskId值:

GET https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/{releaseId}/environments/{environmentId}?api-version=5.1-preview.2

答案 1 :(得分:1)

根据测试结果,当前只能通过第二个API获取纯文本发布日志。

您可以根据Shayki提供的api获得deployPhaseIdtaskIddeployPhaseId指的是阶段中的座席工作ID。第二个rest api的缺点是它无法获取完整的发布日志,而只能获取一个任务的日志。

如果未通过rest api获取发布日志,则可以通过Download all logs按钮从Web ui下载完整日志。

关于第一个rest api,我在浏览器https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/{releaseId}/logs中测试了网址,它自动将log.zip文件下载到本地。在邮递员中进行测试,它返回了无法识别的代码。

enter image description here