You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TFS2015如何查询所有共享及用户自有通知及其所有者?

我来帮你搞定这个问题!针对TFS 2015本地版区分共享和用户自有变更通知的需求,我整理了两种靠谱的方案,不管是直接查数据库还是用REST API都能解决,具体如下:

一、直接查询TFS数据库方案

你提到的tbl_EventSubscription确实是存储订阅的核心表,但区分共享/自有得关联其他表才行。共享通知一般是团队或项目级别的设置创建的,而用户自有通知是个人创建的,关键看订阅者的身份类型——我们可以通过关联tbl_Identity表来判断。

SQL查询示例

SELECT 
    es.SubscriptionId,
    es.Name AS SubscriptionName,
    es.Description,
    -- 通过IsContainer字段判断订阅类型:容器身份代表团队/项目组(共享),普通用户为自有
    CASE 
        WHEN i.IsContainer = 1 THEN 'Shared (Team/Project Group)'
        ELSE 'User-Owned'
    END AS SubscriptionType,
    i.DisplayName AS OwnerDisplayName,
    i.UniqueName AS OwnerUniqueName
FROM 
    tbl_EventSubscription es
-- 左关联避免因已删除身份导致的记录丢失
LEFT JOIN 
    tbl_Identity i ON es.SubscriberId = i.IdentityId
WHERE 
    -- 过滤变更类通知,可根据实际需求调整EventType
    es.EventType IN ('ms.vss-work.workitem-changed-event', 'ms.vss-code.git-push-event')
ORDER BY 
    SubscriptionType, OwnerDisplayName;

关键说明

  • tbl_Identity.IsContainer:值为1时表示该身份是团队、项目组这类“容器”实体,对应的订阅就是共享通知;值为0则是普通用户,属于个人自有通知。
  • 建议在非生产环境先测试查询,遵循微软的TFS数据库访问政策,只做查询操作,不要修改数据。

二、使用TFS 2015 REST API方案

如果不想直接碰数据库,用REST API更安全也更适合自动化场景。TFS 2015的API支持查询事件订阅,还能直接返回订阅者的类型。

API端点示例

查询集合下所有订阅

GET http://<你的TFS服务器地址>/DefaultCollection/_apis/eventsubscriptions?api-version=1.0

按项目过滤订阅

GET http://<你的TFS服务器地址>/DefaultCollection/<项目名称>/_apis/eventsubscriptions?api-version=1.0

区分订阅类型的方法

API返回的JSON结果里,subscriber.kind字段会明确标识订阅者类型:

  • kind: "user":该订阅是用户个人创建的自有通知
  • kind: "group":该订阅属于团队/项目组,是共享通知

返回片段示例:

{
  "id": "a1b2c3d4-5678-90ef-ghij-klmnopqrstuv",
  "name": "My Work Item Change Alert",
  "subscriber": {
    "kind": "user",
    "displayName": "Jane Smith",
    "uniqueName": "contoso\\jane.smith"
  },
  "eventType": "ms.vss-work.workitem-changed-event"
}

注意事项

  • 调用API需要身份验证,可使用基本认证(用户名+密码)或个人访问令牌(如果TFS 2015支持的话)。
  • 可以用curl、Postman快速测试,也能在C#、PowerShell等代码中集成调用。

额外提示

  • 如果数据库查询中出现SubscriberId找不到对应Identity的情况,大概率是已删除的用户或组,用LEFT JOIN可以保留这些记录并做标记。
  • REST API返回的结果包含更多上下文信息(比如订阅的触发条件),如果需要后续处理,API方案更灵活。

内容的提问来源于stack exchange,提问作者W. Siegmund

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:17:20