我正在使用 azure Devops Rest api 提取构建列表,如下所示
https://dev.azure.com/D{my Org}/{我的项目}/_apis/build/builds?api-version=5.1
这会正确返回 JSON 提取中的所有构建,但仅由合并到 master 自动启动的构建包含构建消息详细信息,包含在 json 文件的 trigger.info 属性内。
手动触发的构建根本没有任何触发信息
示例 - 查看 2 个构建的屏幕截图,一个自动触发,一个手动触发
#sql-data-warehouse-20240229.3 • 合并的 PR 1082:FF-654:修改的电子邮件正文(自动触发)
自动触发创建结果,其中 ci.message 部分包含在 json 正文的“triggerinfo”属性中
"triggerInfo": {
"ci.sourceBranch": "refs/heads/master",
"ci.sourceSha": "4040759cee517f35abf2bf1b107e033e7c33bc93",
**"ci.message": "Merged PR 1082: FF-654: modified email body",**
"ci.triggerRepository": "d5b5f4d1-49b9-4457-b934-6dffc6932ce7"
},
"id": 5545,
"buildNumber": "sql-data-warehouse-20240229.3",
手动触发
#sql-data-warehouse-20240229.2 • 合并 PR 1073:FF-654:外汇交易时 dqm 警报的脚本(手动触发)
"triggerInfo": {},
"id": 5537,
"buildNumber": "sql-data-warehouse-20240229.2",
Json 不会在“triggerinfo”属性中返回任何内容
我想做的是提取所有构建的列表,包括在构建时为所有构建创建的消息注释。
我尝试了多种API选项,但找不到我想要的信息
这是预期的行为,并非所有版本都有
ci.message
。 triggerInfo
是源提供商特定的有关触发构建的信息。 build触发的reason
不同,对应的triggerInfo
也不同。
您可以参考以下示例。
"triggerInfo": {},
"triggerInfo": {
"ci.sourceBranch": "main",
"ci.sourceSha": "***",
"ci.message": "Set up CI with Azure Pipelines"
},
"triggerInfo": {
"pr.number": "93",
"pr.isFork": "False",
"pr.triggerRepository": "***",
"pr.triggerRepository.Type": "TfsGit"
},
"triggerInfo": {
"artifactType": "Pipeline",
"alias": "myresourcevars",
"projectId": "***",
"pipelineTriggerType": "PipelineCompletion",
"source": "MainPipeline",
"pipelineId": "***",
"version": "20240228.2"
},
"triggerInfo": {
"scheduleName": "Trigger every 1 minutes test"
},