TFS Azure 2017 工作项更改事件处理程序 - 分支关系
Posted
技术标签:
【中文标题】TFS Azure 2017 工作项更改事件处理程序 - 分支关系【英文标题】:TFS Azure 2017 workitem change event handler - branch relation 【发布时间】:2021-08-20 17:28:21 【问题描述】:我们在 tfs 中有一个插件。此插件会在任何工作项更改时通知我们。我们可以获得工作项详细信息,例如 id、变更集列表,如下所示。但是我们还需要工作项相关的分支名称。
您能帮帮我吗,当工作项在下面的代码中更改时,有什么方法可以获取相关的分支名称。
谢谢
public EventNotificationStatus ProcessEvent(
IVssRequestContext requestContext,
NotificationType notificationType,
object notificationEventArgs,
out int statusCode,
out string statusMessage,
out ExceptionPropertyCollection properties)
statusCode = 0;
properties = null;
statusMessage = String.Empty;
try
if (notificationType == NotificationType.Notification && notificationEventArgs is WorkItemChangedEvent)
WorkItemChangedEvent ev = notificationEventArgs as WorkItemChangedEvent;
int workItemId = Convert.ToInt32(ev.CoreFields.IntegerFields[0].NewValue);
WriteLog("1WorkItemChangedEventHandler WorkItem " + ev.WorkItemTitle + " - Id " + workItemId.ToString() + " was modified");
catch (Exception)
return EventNotificationStatus.ActionPermitted;
【问题讨论】:
【参考方案1】:您可以使用workItemStore.GetWorkItem(workItemId )
获取所有工作项信息。在这里检查类似的问题:How can I get a reference to the TFS WorkItem in a WorkItemChangedEvent?
如果你使用 git,你可以试试下面的例子来获取分支引用:
int workitemId = YOUR_ID;
WorkItemStore wiStore = new WorkItemStore("YOUR_URI");
WorkItem wi = wiStore.GetWorkItem(workitemId);
foreach (Link link in wi.Links)
if (link.BaseType == BaseLinkType.ExternalLink)
var brList = ((ExternalLink)link).LinkedArtifactUri.Split(new string[] "%2F" , StringSplitOptions.RemoveEmptyEntries).ToList();
brList.RemoveAt(0); //remove project and repo giuds
brList.RemoveAt(0);
brList[0] = brList[0].Replace("GB", ""); // remove GB prefix
Console.WriteLine("Branch: 0", string.Join("/", brList));
【讨论】:
是的,我使用它,但没有分支信息。那里的分行信息在哪里?我们还需要分支名称,例如 test、master 等。 @Pronto 我已经添加了一个如何获取 git 分支的示例。以上是关于TFS Azure 2017 工作项更改事件处理程序 - 分支关系的主要内容,如果未能解决你的问题,请参考以下文章
Azure DevOps Server(TFS): 在Excel中解除服务器同步
如何使用 API 创建跨 TFS 集合的 TFS/Azure DevOps 工作项查询并将其导出到 Wor/Excel/Outlook 等
我可以从 Visual Studio 将 Git 链接类型(分支、提交等)添加到我的 TFS(AZURE)工作项吗?