azure Web Hook将数据发布到传入服务连接错误(404)

cwdobuhd  于 2023-11-21  发布在  其他
关注(0)|答案(1)|浏览(152)

我想在workItem State更改为“Closed”时触发管道。为了处理此问题,我尝试了以下步骤作为触发管道的要求:
1.定义一个“Incoming Service Connection”,使web hook url post可用于管道。
1.定义一个Web钩子(设置所需的事件设置),并将URL设置为:https://{org}/defaultcollection/{project}/_apis/public/distributedtask/webhooks/UpdateWorkItemState?api-version=7.0,其中UpdateWorkItemState是上一步中定义的服务连接中的Web钩子名称。
但是在测试Web Hook时遇到了404 not found错误。

入站业务连接定义:


的数据

Web Hook定义:


测试窗口:


yc0p9oo0

yc0p9oo01#

我可以用你分享的URL重现404问题。你似乎一直在使用错误的URL。根据document,URL中没有Project,这也省去了我们添加认证令牌的麻烦。
x1c 0d1x的数据
为了避免其他错误的配置,通过WebHook触发管道,我分享了我的示例如下。希望信息可以帮助。
1.对于Azure DevOps Server,我使用的URL如下,URL中没有Project;

http://<TFSInstance>/<CollectionName>/_apis/public/distributedtask/webhooks/<WebHookName>?api-version=6.0-preview

字符串
对于Azure DevOps Service,URL应该是;

https://dev.azure.com/<OrgName>/_apis/public/distributedtask/webhooks/<WebHookName>?api-version=6.0-preview


1.上述URL中的“WebHookName”值应用于Incoming WebHook服务连接;



1.在引用传入WebHook服务连接的YAML管道中添加webhook资源,该资源将侦听请求;

resources:
  webhooks:
  - webhook: WebHook1
    connection: WebHookSvcCnnClosedWIT #Incoming WebHook service 
connection name
steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
       script: 'Write-Host "WIT ID is ${{ parameters.WebHook1.resource.id }}"' #Use the value sent from the WebHook request payload


1.另外请注意,只有管道default分支的YAML文件中定义的webhook资源会监听请求;也就是说,如果webhook资源是在non-default分支的YAML文件中定义的,管道将不会被触发,我们将得到一个失败的webhook请求历史记录。

相关问题