TFS2015 - 显示所有共享和用户拥有的通知及其所有者

时间:2018-05-30 14:20:36

标签: mysql tfs notifications tfs2015

我正在尝试编写一个SQL查询,该查询将在TFS 2015内部部署的变更通知中列出所有共享和用户拥有的VSTS。根据我的研究,通知应该存储在tbl_EventSubscription表中,但是没有关于事件是用户拥有还是共享的信息,只是订阅者的订阅ID,我不知道在哪里搜索所有者。

如果有可能使用REST API解决这个问题,它也会有所帮助。

非常感谢任何帮助或指导。

2 个答案:

答案 0 :(得分:0)

不建议您直接深入了解TFS数据库。不要对TFS数据库进行任何更改,否则您可能会失去Microsoft的支持。

由于您已经获得了SubscriptionID,因此要找出" SubscriberId"中的GUID背后隐藏了哪个用户身份。在列中,您可以使用以下SQL语句:

SELECT  es.Id, 
        es.EventType, 
        es.Expression, 
        sic.mail_address, 
        sic.computed_display_name 
FROM    tbl_EventSubscription es 
JOIN    [Tfs_Configuration].[dbo].tbl_security_identity_cache sic 
ON      sic.tf_id = es.SubscriberId 
WHERE   es.Id = 123

更多详细信息,请查看此博客:Who created that TFS event subscription?

答案 1 :(得分:0)

好吧,我想我明白了:

   SELECT Notif.Id AS 'Notification Id',
          Notif.EventType AS 'Event Type',
          Notif.Classification AS 'Notification Classification',
          Const.IdentityDisplayName AS 'Notification Owner'
     FROM [Tfs_Development].[dbo].[tbl_EventSubscription] Notif
LEFT JOIN [Tfs_Development].[dbo].[Constants] Const ON Const.TeamFoundationId = Notif.SubscriberId
 ORDER BY Notif.Id

@ PatrickLu-MSFT我不知道为什么,但我在Tfs_Configuration中没有tbl_security_identity_cache,但是我在Tfs_Development中有它并且它是空的。我使用Tfs_Configuration.dbo.tbl_Identity作为用户名的参考,但它没有为团队订阅者甚至一些用户返回我的名字,所以最后我会选择我的解决方案。

感谢您的帮助。