从我之前的问题link here看来,我们在任何版本的TFS / Azure DevOps中都没有功能来设置对Webhook订阅的监视。
作为一种解决方法,我现在正在寻找编写PowerShell脚本来检查订阅的心跳。从Microsoft文档link here看来,我们可以通过查询订阅ID来获取SubscriptionStatus。
在以下API的GET请求中,我收到了文档中指定的所有详细信息,但在响应中找不到“状态”。 有人知道是否还有其他方法可以获取SubscriptionStatus。
https://collectionurl/_apis/hooks/subscriptions/3d9af4ba-d642-4c80-8d62-34cabca322f9
答案 0 :(得分:0)
尝试列出订阅内容:
GET https://collectionurl/_apis/hooks/subscriptions?api-version=5.1
您可以使用查询参数过滤结果,如下所示:
GET https://collectionurl/_apis/hooks/subscriptions?publisherId={publisherId}&eventType={eventType}&consumerId={consumerId}&consumerActionId={consumerActionId}&api-version=5.1
您应该在某处看到status
。
答案 1 :(得分:0)
我发现所讨论的API是正确的,但是由于某种原因我没有获得“启用”状态,因此我成功测试了here中提到的所有其他状态。
我现在将我的PowerShell设置为每5分钟执行一次,以检查webhook的状态,并发送电子邮件以获取除“已启用”以外的其他状态。
如果状态为“已启用”或“空”,则进一步检查consumerInputs.url以检查网络钩是否仍然存在。
这很好用。