Вызов API-интерфейсов Team Foundation Server (TFS) через хранимую процедуру SQL Server
Я создаю свой первый проект ASP.NET MVC. Я начал с подключения TFS и добавления ошибок в TFS через С#.
var tfsURI = new Uri("http://test:8080/tfs");
var networkCredential1 = new NetworkCredential("test", "test!");
ICredentials credential = (ICredentials)networkCredential1;
Microsoft.VisualStudio.Services.Common.WindowsCredential winCred = new Microsoft.VisualStudio.Services.Common.WindowsCredential(credential);
VssCredentials vssCredentials = new VssCredentials(winCred);
using (TfsTeamProjectCollection collection = new TfsTeamProjectCollection(tfsURI, vssCredentials))
{
collection.EnsureAuthenticated();
WorkItemStore workItemStore = collection.GetService<WorkItemStore>();
Project teamProject = workItemStore.Projects["Test"];
WorkItemType workItemType = teamProject.WorkItemTypes["Bug"];
WorkItem Defect = new WorkItem(workItemType);
FileInfo fi = new FileInfo(@"C:\\Document.docx");
Attachment tfsAttachment = new Attachment(fi.FullName);
Defect.Attachments.Add(tfsAttachment);
Defect.Title = "Testing from VS to TFS Bug";
Defect.Description = "Testing from VS to entered Bug in to TFS.";
Defect.Fields["Assigned To"].Value = "Test";
Defect.Save();
}
Этот код, показанный выше, работает нормально.
Но возможно ли достичь того же результата, используя хранимую процедуру SQL Server? Есть ли способ подключиться к TFS и добавить ошибку в TFS с помощью хранимой процедуры?
У меня есть база данных и из хранимой процедуры sql я хотел подключиться к TFS и создать WorkItem. Через С# я сделал, как видно из приведенного выше примера. Но мне нужен любой пример, если та же самая вещь может быть достигнута с помощью хранимой процедуры.
Ответы
Ответ 1
Лучшее решение, которое я нашел после большого количества исследований, так как SP невозможно. Решение заключается в создании службы Windows. который будет работать в фоновом режиме каждые 5 минут и будет контролировать вход в SQl Table (мой случай), если запись существует для Bug, создаст Ticket в TFS.
на данный момент это простое, лучшее решение без ущерба для производительности или чего-либо еще.
Ответ 2
Обновление:
Вы можете вызвать веб-сервис из SQL CLR. Некоторые уроки могут быть полезны:
Нет, единственная база данных, предназначенная для пользовательских запросов, - это база данных хранилища. Другие явно не поддерживаются и не должны запрашиваться напрямую.
Не вносите никаких изменений в базы данных TFS напрямую, в противном случае вы можете потерять поддержку от Microsoft.
Пожалуйста, посмотрите на этот похожий вопрос здесь: Добавить хранимую процедуру в базу данных TFS
В дополнение к использованию клиентского API, вы также можете использовать Rest API в TFS, чтобы что-то сделать.
Рабочие элементы - Создать
POST https://{instance}/{collection}/{project}/_apis/wit/workitems/${type}?api-version=5.0