使用 DevOps Release REST API 确定发布完成的时间

Posted

技术标签:

【中文标题】使用 DevOps Release REST API 确定发布完成的时间【英文标题】:Using DevOps Release REST API to determine time for release to complete 【发布时间】:2019-03-20 21:52:47 【问题描述】:

我在这里使用 DevOps REST API: https://docs.microsoft.com/en-us/rest/api/azure/devops/release/releases/list?view=azure-devops-rest-5.0

我有一个特定的发布管道,我想监控它的性能,我希望能够查询该管道以确定在过去 n 次运行中完成它需要多长时间。然后我可以获取这些数据并使用它来确定随着时间的推移性能是否有任何下降。

是否可以使用现有 API 确定此信息?上面的 API 似乎只谈论发布开始时间,从玩弄各种我无法从中获得完成时间的选项。

【问题讨论】:

【参考方案1】:

这不是很容易找到,但以下链接返回您需要的数据: https://vsrm.dev.azure.com/Utopia-Demo/Utopia/_apis/release/releases/1

 "releaseDeployPhases": [
                        
                           ...
                            "deploymentJobs": [
                                
                                    "job": 
                                        ...
                                        "dateStarted": "2019-01-23T14:40:59.603Z",
                                        "dateEnded": "2019-01-23T14:42:49.863Z",
                                        "startTime": "2019-01-23T14:40:59.603Z",
                                        "finishTime": "2019-01-23T14:42:49.863Z",
                                        ...
                                    ,

这是作业的开始和结束时间,您可以使用它来计算作业长度。

【讨论】:

有趣,我整个项目中的发布版本都没有这个属性。 好的,找到了。我之前没有看到它的原因:我使用“列表”API 来获取给定管道的前 50 个版本。如果我切换到使用 Get Release API,我还会返回一个 Release 对象,但它包含的信息比 List API 多。因此,根据我的需要,我可能必须先获取一个列表,然后获取发布 ID 并单独查询。 是的,就是这样。您可以分页 List API 以获取所有版本 ID,然后获取各个版本的详细信息。

以上是关于使用 DevOps Release REST API 确定发布完成的时间的主要内容,如果未能解决你的问题,请参考以下文章

无法在 PowerShell 中使用 REST API 删除 DevOps 分支

尝试使用 Azure DevOps Rest API 创建发布定义时出错

如何使用 Azure DevOps REST Api 编写构建计划脚本?

Azure devops Server 2019中的Analytics Widget-寻找Rest api和class libraby用于Analytics Widget

Azure DevOps REST API - 选项列表如何与字段关联?

DEVOPS技术实践_13:使用Jenkins持续传送设计-CD基础