如何使用 REST API 从 DevOps 中提取构建列表,其中包括手动触发构建和自动构建的消息信息

问题描述 投票:0回答:1

我正在使用 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选项,但找不到我想要的信息

build devops azure-devops-rest-api
1个回答
0
投票

这是预期的行为,并非所有版本都有

ci.message
triggerInfo
是源提供商特定的有关触发构建的信息。 build触发的
reason
不同,对应的
triggerInfo
也不同。

您可以参考以下示例。

  • “原因”:“手册”
            "triggerInfo": {},
  • “原因”:“个人CI”
            "triggerInfo": {
                "ci.sourceBranch": "main",
                "ci.sourceSha": "***",
                "ci.message": "Set up CI with Azure Pipelines"
            },
  • “原因”:“pullRequest”
            "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"
            },
© www.soinside.com 2019 - 2024. All rights reserved.