Как создать ошибку в TFS программно - PullRequest
0 голосов
/ 11 ноября 2018

Я ищу небольшой фрагмент кода, который поможет мне программно создать дефект в TFS с использованием C # VSTS2015.

Мой TFS-сервер: http://tfs2.dell.com:8080/tfs/eDell/eDellPrograms/. сервер: http://tfs2.dell.com:8080/tfs. Коллекция есть: eDell. Проект: eDellPrograms.

Рабочий элемент = Дефект.

1 Ответ

0 голосов
/ 11 ноября 2018

У вас есть 2 варианта:

  1. TFS Soap API (SDK)
  2. TFS Rest API

Для TFS Soap API (SDK) вам нужны следующие DLL:

Microsoft.TeamFoundation.Client;
Microsoft.TeamFoundation.WorkItemTracking.Client;

Код:

using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;

namespace createNewWorkItem
{
    class Program
    {
        static int Main(string[] args)
        {
            Uri collectionUri = new Uri("http://server:8080/TFS/");
            TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(collectionUri);
            WorkItemStore workItemStore = tpc.GetService<WorkItemStore>();
            Project teamProject = workItemStore.Projects["MyProject"];
            WorkItemType workItemType = teamProject.WorkItemTypes["Defect"];

            WorkItem Defect = new WorkItem(workItemType);

            Defect.Title = "TITLE GOES HERE";
            Defect.Description = "DESCRIPTION GOES HERE";
            Defect.Fields["Issue ID"].Value = "999999";


            Defect.Save();
            return (Defect.Id);

        }
    }

}

Если вы хотите использовать Rest API, вам не нужны указанные выше DLL.

Код:

public static async void createtWorkItem()
{
        string requestUrl = "http://TFS2015servername:8080/tfs/{collectionname}/{teamprojectname}/_apis/wit/workitems/$Defect?api-version=1.0";
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        string json = serializer.Serialize(new object[]{new
        {
            op = "add",
            path = "/fields/System.Title",
            value = "New Task from TFS 2015 REST API"
        }});

        HttpClientHandler authtHandler = new HttpClientHandler()
        {
           // Credentials = CredentialCache.DefaultNetworkCredentials
           Credentials = new NetworkCredential("username", "password", "domainname")
        };

        using (HttpClient client = new HttpClient(authtHandler))
        {
            var method = new HttpMethod("PATCH");

            var request = new HttpRequestMessage(method, requestUrl)
            {
                Content = new StringContent(json, Encoding.UTF8,
                    "application/json-patch+json")
            };
        HttpResponseMessage hrm = await client.SendAsync(request);
        }

        Console.WriteLine("Completed!");
    };
}
...