首页 > 解决方案 > 如何在 Azure DevOps (OnPremise) 中触发我的“传入 Webhook”服务连接?端点 URL 未知

问题描述

概述:我尝试在创建特定类型的 WorkItem 的情况下触发 Azure DevOps 2020 Pipeline (YAML)。所以我的想法是在“WorkItem”->“Web Hook”类型的服务挂钩->“传入 Webhook”类型的服务连接->资源:webhook 之间创建连接,以触发 YAML 中的管道。

我现在的问题是,我可以通过 GUI 或 API 创建服务端点,但文档和创建的端点对我来说没有意义。我在本地运行我的服务器,我得到的端点如下所示:

{"count":1,"value":[{"data":{},"id":"1babbef7-1edb-4b01-bf18-b6e3c309caae","name":"TestIncomingWebhook","type":"incomingwebhook","url":"https://dev.azure.com", ...

该网址对我来说没有意义。

如果我使用 REST API 通过使用此格式创建端点,我可以更改 url

POST https://{instance}/{collection}/{project}/_apis/serviceendpoint/endpoints

Microsoft Azure API 文档中所述。

问题:

  1. 为什么当我在完全不同的 url 上从服务器本地运行时,服务连接的 url 指向https://dev.azure.com ?那是我必须发布才能触发 ServiceConnection 的 url 吗?
  2. 我的本地服务器的正确 URL 格式必须是什么?我应该将该 URL 指向哪里?
  3. 如何从 curl 触发服务连接?我是否必须使用带有大量参数的 GET 或带有 JSON 有效负载的 POST?

如果有人可以帮助我解决这个问题,我将不胜感激。也许有人甚至获得了关于如何在工作项事件上触发管道的完整解决方案。我搜索了很多但找不到解决方案。

谢谢,彼得。

我从 GUI 中创建了 WebHook 和 ServiceConnection,如下所示:

我真正的问题是,我没有得到任何反馈,正确的 ServiceHook URL 是什么。我不知道在哪里指向我的 WebHook。

补充:在 Azure DevOps 中访问 Incoming Webhook Service Endpoint 的正确 URL 是 https://{instance}/{Collection name}/_apis/public/distributedtask/webhooks/{Service Connection name}?api-version=6.0-preview

标签: azure-devopsazure-devops-rest-api

解决方案


  1. 这应该与您的机器设置有关,您可以在此处分享详细步骤

  2. 由于您使用的是 Azure DevOps Server 2020,因此本地服务器的 url 格式应为https://{instance}. 您可以打开 Azure DevOps 服务器管理控制台进行检查。

  3. 它将通过您选择的事件触发 webhook。

您可以参考此以获取更多详细信息。

此外,您可以尝试此逻辑应用程序,然后创建流程以在创建特定类型时触发构建

更新1

  1. 创建服务连接Incoming WebHook,例如。Web Hook 名称是HookTests,服务连接名称是TestHook

在此处输入图像描述

  1. 创建 Web Hooks 并输入 URLhttps://{instance}/{Collection name}/_apis/public/distributedtask/webhooks/{Web Hook name eg. HookTests}?api-version=6.0-preview

  2. 在 yaml 管道中创建 YAML 构建并添加服务连接资源,如下所示:

    资源:webhooks:- webhook:MyWebhookTrigger
    连接:{服务连接名称,例如.TestHook}

上述步骤实际上做了以下事情:

创建新工作项-->自动触发 Azure 管道。

此外,我们还可以添加任务电源外壳并调用 REST API 来触发另一个管道。

在此处输入图像描述


推荐阅读