【问题标题】:How to get azure devops release pipeline deployment logs using Azure DevOps REST API?如何使用 Azure DevOps REST API 获取 azure devops 发布管道部署日志?
【发布时间】:2020-02-12 09:10:01
【问题描述】:
我遇到了两个 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
- 我尝试使用第一个 REST API。它以
transfer-encoded 格式检索数据。 NodeJS如何从body中获取真实数据?
- 为了检查第二个 REST API,我没有
releaseDeployPhaseId 和 taskId 的值。我没有在 Azure DevOps Release Pipeline 门户中获得这些信息。
谁能帮我解决这个问题?提前致谢!
【问题讨论】:
标签:
azure-devops
azure-pipelines
azure-pipelines-release-pipeline
azure-devops-rest-api
azure-pipelines-tasks
【解决方案1】:
根据测试结果,目前只能通过第二个API获取明文发布日志。
你可以根据Shayki提供的api获取deployPhaseId和taskId,deployPhaseId指的是stage中的agent job id。第二个rest api的缺点是不能获取完整的发布日志,只能获取一个任务的日志。
如果你没有通过rest api获取发布日志,你可以通过Download all logs按钮从web ui下载完整的日志。
关于第一个rest api,我在浏览器中测试了url:https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/{releaseId}/logs,它自动下载了一个log.zip文件到本地。在 postman 中测试,返回无法识别的代码。
【解决方案2】:
您可以在以下 API 中获取 releaseDeployPhaseId 和 taskId 值:
GET https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/{releaseId}/environments/{environmentId}?api-version=5.1-preview.2