获取 TFS Webhook 订阅状态
Get TFS Webhook SubscriptionStatus
从我之前的问题 看来,我们在 TFS/Azure DevOps 的任何版本中都没有为 webhook 订阅设置监控的功能。
作为解决方法,我现在正在寻找编写 PowerShell 脚本来检查订阅的心跳。从 Microsoft 文档 link here 看来,我们可以通过查询订阅 ID 来获取 SubscriptionStatus。
在 API 以下的 GET 请求中,我收到了文档中指定的所有详细信息,但我无法在响应中找到 "status"。
有谁知道是否有任何其他方法可以获取 SubscriptionStatus。
https://collectionurl/_apis/hooks/subscriptions/3d9af4ba-d642-4c80-8d62-34cabca322f9
尝试列出订阅:
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
。
我发现我的 API 是正确的,但由于某种原因我没有获得 'enabled' 状态,我成功测试了提到的所有其他状态 here。
我现在将我的 PowerShell 设置为每 5 分钟执行一次以检查 webhook 的状态,并发送一封电子邮件以了解 'enabled' 以外的任何其他状态。
如果状态是 'enabled' 或 'empty' 我进一步检查 consumerInputs.url 以检查 webhook 是否存在。
这很好用。
从我之前的问题
作为解决方法,我现在正在寻找编写 PowerShell 脚本来检查订阅的心跳。从 Microsoft 文档 link here 看来,我们可以通过查询订阅 ID 来获取 SubscriptionStatus。
在 API 以下的 GET 请求中,我收到了文档中指定的所有详细信息,但我无法在响应中找到 "status"。 有谁知道是否有任何其他方法可以获取 SubscriptionStatus。
https://collectionurl/_apis/hooks/subscriptions/3d9af4ba-d642-4c80-8d62-34cabca322f9
尝试列出订阅:
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
。
我发现我的 API 是正确的,但由于某种原因我没有获得 'enabled' 状态,我成功测试了提到的所有其他状态 here。
我现在将我的 PowerShell 设置为每 5 分钟执行一次以检查 webhook 的状态,并发送一封电子邮件以了解 'enabled' 以外的任何其他状态。
如果状态是 'enabled' 或 'empty' 我进一步检查 consumerInputs.url 以检查 webhook 是否存在。
这很好用。