В Azure DevOps Server (TFS на Prem) есть ли способ напрямую связать Changeset с гиперссылкой? - PullRequest
0 голосов
/ 07 января 2020

Я смотрю, можно ли напрямую связать TFS Changeset с гиперссылкой.

Я могу создать рабочий элемент и в рабочем элементе создать тип гиперссылки на сайт, а затем связать набор изменений с рабочим элементом. При этом пользователь должен открыть список «Связанные рабочие элементы», открыть Связанный рабочий элемент, найти гиперссылку и открыть ссылку.

Конечный результат, который я ищу, будет при просмотре Информация о наборе изменений в наборе изменений может быть раздел «Связанные ссылки» или нечто подобное, где пользователь может легко увидеть любые связанные гиперссылки для набора изменений.

Спасибо, Крис

1 Ответ

0 голосов
/ 24 февраля 2020

Итак, после некоторого пробного периода и множества ошибок я нашел подходящее решение для моего случая. Путем выполнения, по сути, двух действий в расширении Visual Studio и нового пользовательского типа рабочего элемента.

Новый тип рабочего элемента - в основном используется шаблон Code Review - скрытый рабочий элемент, который может быть создан только с помощью автоматизации. Удалены поля, которые не нужны для моего случая.

Расширение Visual Studio, часть 1 - настроить действие, которое происходит, когда пользователь нажимает кнопку «Вернуть» в окне «Ожидающие изменения». Когда это действие запускается, расширение будет собирать некоторые соответствующие данные из регистрации. Затем расширение создаст новый рабочий элемент и установит sh две ссылки в рабочем элементе. Одна ссылка связана с набором изменений и рабочим элементом. Другой - это гиперссылка на нужный сайт.

Расширение Visual Studio, часть 2 - настройте действие для представления сведений о наборе изменений. Когда представление сведений о наборе изменений загружается, возьмите выбранный идентификатор набора изменений. Это оказалось довольно сложной задачей, так как многие из предоставленных классов деталей Changeset являются частными. После получения идентификатора набора изменений найдите соответствующие рабочие элементы для набора изменений. L oop через ссылки в рабочем элементе, захватывающие гиперссылки в рабочем элементе. Затем go просмотрите найденные гиперссылки и отобразите их в новом разделе через WPF в представлении сведений о наборе изменений.

Раздел кода, который помог получить идентификатор набора изменений в расширении Visual Studio:

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;
...