如何在 Azure DevOps (OnPremise) 中触发我的 "Incoming Webhook" 服务连接?端点 URL 未知
How to trigger my "Incoming Webhook" Service Connection in Azure DevOps (OnPremise)? The Endpoint URL is unknown
概述:我尝试在创建特定类型的 WorkItem 时触发 Azure DevOps 2020 Pipeline (YAML)。所以我的想法是在“WorkItem”->“Web Hook”类型的服务挂钩->“Incoming Webhook”类型的服务连接->resource:webhook 之间创建一个连接,触发 YAML 中的管道。
我现在的问题是,我可以通过 GUI 或 API 创建服务端点,但文档和创建的端点对我来说没有意义。我是 运行 我的本地服务器,我得到的端点如下所示:
{"count":1,"value":[{"data":{},"id":"1babbef7-1edb-4b01-bf18-b6e3c309caae","name":"TestIncomingWebhook","type":"incomingwebhook","url":"https://dev.azure.com", ...
url 对我来说没有意义。
如果我使用 REST API 通过使用此格式创建端点,我可以更改 url
POST https://{instance}/{collection}/{project}/_apis/serviceendpoint/endpoints
如Microsoft Azure API Documentation所述。
问题:
- 为什么 url 服务连接指向 https://dev.azure.com 而我 运行 来自完全不同的 url 上的服务器?那会是 url 我必须 POST 才能触发 ServiceConnection 吗?
- 我的本地服务器的正确 URL 格式必须是什么?我应该将 URL 指向哪里?
- 如何从 curl 触发服务连接?我是否必须使用带有大量参数的 GET 或带有 JSON 负载的 POST?
如果有人能帮助我解决这个问题,我将不胜感激。也许有人甚至得到了关于如何在工作项事件上触发管道的完整解决方案。我搜索了很多,但找不到解决方案。
谢谢,彼得。
我从 GUI 创建了 WebHook 和 ServiceConnection,如下所示:
- WebHook Configuration Screenshot
- ServiceHook Configuration Screenshot
我真正的问题是,我没有得到正确的 ServiceHook URL 是什么的反馈。我不知道将 WebHook 指向何处。
补充:
在 Azure DevOps 中访问传入 Webhook 服务端点的正确 URL 是 https://{instance}/{Collection name}/_apis/public/distributedtask/webhooks/{Service Connection name} ?api-版本=6.0-预览
这应该与您的机器设置有关,您可以在这里分享详细步骤
由于您使用的是 Azure DevOps Server 2020,因此您本地服务器的 url 格式应为 https://{instance}
。您可以打开 Azure DevOps Server 管理控制台进行检查。
它将通过您选择的事件触发 webhook。
您可以参考此了解更多详情。
此外,您可以试试这个Logic Apps然后创建流程以在创建特定类型时触发构建
更新1
- 创建服务连接
Incoming WebHook
,例如。 Web 挂钩名称为 HookTests
,服务连接名称为 TestHook
创建 Web Hooks 并输入 URL https://{instance}/{Collection name}/_apis/public/distributedtask/webhooks/{Web Hook name eg. HookTests}?api-version=6.0-preview
创建 YAML 构建并在 yaml 管道中添加服务连接资源见下文:
资源:
网络钩子:
- 网络挂钩:MyWebhookTrigger
连接:{服务连接名称,eg.TestHook}
以上步骤实际上做了以下事情:
创建新工作项-->自动触发 Azure 管道。
此外,我们还可以添加任务权限shell并调用REST API来触发另一个管道。
概述:我尝试在创建特定类型的 WorkItem 时触发 Azure DevOps 2020 Pipeline (YAML)。所以我的想法是在“WorkItem”->“Web Hook”类型的服务挂钩->“Incoming Webhook”类型的服务连接->resource:webhook 之间创建一个连接,触发 YAML 中的管道。
我现在的问题是,我可以通过 GUI 或 API 创建服务端点,但文档和创建的端点对我来说没有意义。我是 运行 我的本地服务器,我得到的端点如下所示:
{"count":1,"value":[{"data":{},"id":"1babbef7-1edb-4b01-bf18-b6e3c309caae","name":"TestIncomingWebhook","type":"incomingwebhook","url":"https://dev.azure.com", ...
url 对我来说没有意义。
如果我使用 REST API 通过使用此格式创建端点,我可以更改 url
POST https://{instance}/{collection}/{project}/_apis/serviceendpoint/endpoints
如Microsoft Azure API Documentation所述。
问题:
- 为什么 url 服务连接指向 https://dev.azure.com 而我 运行 来自完全不同的 url 上的服务器?那会是 url 我必须 POST 才能触发 ServiceConnection 吗?
- 我的本地服务器的正确 URL 格式必须是什么?我应该将 URL 指向哪里?
- 如何从 curl 触发服务连接?我是否必须使用带有大量参数的 GET 或带有 JSON 负载的 POST?
如果有人能帮助我解决这个问题,我将不胜感激。也许有人甚至得到了关于如何在工作项事件上触发管道的完整解决方案。我搜索了很多,但找不到解决方案。
谢谢,彼得。
我从 GUI 创建了 WebHook 和 ServiceConnection,如下所示:
- WebHook Configuration Screenshot
- ServiceHook Configuration Screenshot
我真正的问题是,我没有得到正确的 ServiceHook URL 是什么的反馈。我不知道将 WebHook 指向何处。
补充: 在 Azure DevOps 中访问传入 Webhook 服务端点的正确 URL 是 https://{instance}/{Collection name}/_apis/public/distributedtask/webhooks/{Service Connection name} ?api-版本=6.0-预览
这应该与您的机器设置有关,您可以在这里分享详细步骤
由于您使用的是 Azure DevOps Server 2020,因此您本地服务器的 url 格式应为
https://{instance}
。您可以打开 Azure DevOps Server 管理控制台进行检查。它将通过您选择的事件触发 webhook。
您可以参考此
此外,您可以试试这个Logic Apps然后创建流程以在创建特定类型时触发构建
更新1
- 创建服务连接
Incoming WebHook
,例如。 Web 挂钩名称为HookTests
,服务连接名称为TestHook
创建 Web Hooks 并输入 URL
https://{instance}/{Collection name}/_apis/public/distributedtask/webhooks/{Web Hook name eg. HookTests}?api-version=6.0-preview
创建 YAML 构建并在 yaml 管道中添加服务连接资源见下文:
资源: 网络钩子: - 网络挂钩:MyWebhookTrigger
连接:{服务连接名称,eg.TestHook}
以上步骤实际上做了以下事情:
创建新工作项-->自动触发 Azure 管道。
此外,我们还可以添加任务权限shell并调用REST API来触发另一个管道。