【问题标题】:How to get PR title and description from agents如何从代理处获取 PR 标题和描述
【发布时间】:2020-07-31 03:19:21
【问题描述】:

是否可以在管道中获取 PR 标题和 PR 描述?

这个想法是通知团队已经部署了哪个任务。所有功能都需要测试去分支“开发” 我尝试集成 Ms Teams,订阅管道,但没有任何信息有用。

构建管道给了我没有帮助的分支“开发”(不确定合并到“开发”中的内容)以及请求构建的人

部署管道绝对没有任何用处。

更新:

下图是查询Builds - Get Api的结果。 PR 的触发已完成。没有关于 PR 的信息。

【问题讨论】:

    标签: azure-devops azure-repos


    【解决方案1】:

    如果您的构建基于 pull request commit ,则 sourceVersion 将显示在构建摘要页面中的源分支旁边。

    点击这个sourceVersion,你会跳转到包含pr标题和描述的详细页面,在这个页面你也可以看到合并的变化。

    更新

    或在构建或发布过程中查询 PR 标题的方法

    通过rest api获取pr title怎么样?我们可以先使用Builds-Getrest api来获取指定build中的pull request id。

    GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}?api-version=5.1
    

    然后通过获取到的pull request id,我们可以使用Get Pull Requestrest api 来获取pull request的标题。

    GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullrequests/{pullRequestId}?api-version=5.1
    

    以上可以通过在构建或发布过程中添加一个powershell任务(通过脚本调用rest api)来实现。

    更新2

    PR触发构建和CI触发构建的区别:

    如果构建是由pr触发的,那么触发器reason应该是pullRequest。下面是我在 Postman 中的测试:

    【讨论】:

    • 感谢您的回复。我的意思是作为 pipelines 中的变量,或者是在构建或发布过程中查询 PR 标题的一种方式。发布完成后,它通常会通知“Release-x 已部署”(与 MS Teams 集成)。但该通知确实很少,因为 QC 团队中没有人知道部署了哪个任务。
    • 如何通过rest api获取pr title?请查看我的更新。
    • 很抱歉没有提供足够的信息。当 PR 的构建触发完成时,我需要 PR 标题(我在问题中更新)。我猜它不可能的原因是构建无法判断哪个操作更改了分支(PR 或直接推送到它),它只知道分支已更改,因此它触发基于此的构建。不过,还是非常感谢。我是 Azure Devops 的新手。还有很多东西要探索
    • PR 触发的构建和 CI 触发的构建是不同的。这将被标记为构建。如果这个构建是由pr触发的,那么通过rest api得到的响应应该包含pr信息,reason应该是pullRequest。请检查您查询的 Build 是否是 pr 触发的构建。对于这些,请查看我的更新2。
    • 是的。但我不能做 PR 触发的构建,只有 CI 触发的构建 => 我所有的测试功能都进入 1 个分支,而不是每个任务的单独开发环境。这是我有点卡住的地方。如果它是 Ci 触发的,则无法查询 PR。我想也许我查询了存储库中最新的 PR。这是一个黑客,但没有其他解决方案。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2017-08-15
    • 2011-09-01
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    相关资源
    最近更新 更多