在 Azure DevOps Server(TFS on Prem)中,有没有办法直接 link 到 hyperlink 的变更集?

In Azure DevOps Server (TFS on Prem) is there a way to link a Changeset to a hyperlink directly?

我想看看是否可以直接 link 带有 hyperlink 的 TFS 变更集。

我可以创建一个工作项,并在该工作项中创建一个站点的 Hyperlink link 类型,然后将变更集关联到该工作项。但是用户必须打开 'Related Work Items' 列表,打开相关工作项,找到 hyperlink link,然后打开 link.

我正在寻找的最终结果是在查看变更集的变更集详细信息时会有一个 'Related Links' 部分或类似的东西,用户可以在其中轻松看到任何相关的 hyperlinks对于变更集。

谢谢, 克里斯

因此,经过一些尝试和大量错误后,我为我的案例提出了一个可行的解决方案。 通过 Visual Studio 扩展和新的自定义工作项类型中的两个基本操作来完成。

新工作项类型 - 基本上使用了 Code Review 模板,一个只能通过自动化创建的隐藏工作项。删除了我的案例不需要的字段。

Visual Studio 扩展第 1 部分 - 设置当用户单击待定更改 window 上的 'Checkin' 按钮时发生的操作。触发此操作时,扩展将从签入中捕获一些相关数据。然后扩展将创建新的工作项并在工作项中建立两个 link。一个 link 正在关联变更集和工作项。另一个是到所需站点的 hyplerlink。

Visual Studio 扩展第 2 部分 - 为变更集详细信息视图设置一个操作。当加载变更集详细信息视图时,获取选定的变更集 ID。事实证明,这是一项有些困难的任务,因为提供的许多变更集详细信息 类 都是私有的。抓取变更集 ID 后,找到与变更集相关的工作项。循环遍历工作项中的 links 以获取工作项中的 hyperlink links。然后通过找到的 hyplerlinks 并在变更集详细信息视图中通过 WPF 在新部分中显示它们。

帮助获取 Visual Studio 扩展中的变更集 ID 的代码部分:

var dte = Package.GetGlobalService(typeof(EnvDTE.DTE)) as EnvDTE.DTE;
var dte2 = (EnvDTE80.DTE2)dte;
var vce = dte2.DTE.GetObject("Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt") as VersionControlExt;
VersionControlHistoryChangesetItem[] versionControlHistoryChangesetItems = vce.History.ActiveWindow.SelectedChangesets;