.NET 클라이언트 라이브러리를 사용하여 Azure DevOps Services에서 버그 만들기
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
새 버그(또는 모든 작업 항목)를 만드는 것은 매우 간단합니다. 필드 값을 설정하고 JSON 패치 개체를 REST 엔드포인트로 보내야 합니다.
필수 조건
작업 항목을 만들려면 다음이 있어야 합니다.
- Azure DevOps Services의 조직입니다. 없는 경우 무료로 만들 수 있습니다 .
- 개인용 액세스 토큰, 토큰을 만드는 방법 알아보기
- C# 개발 환경에서 Visual Studio를 사용할 수 있습니다.
Visual Studio에서 C# 프로젝트 만들기
Visual Studio 내에서 C# 프로그래밍에 대해 알아보려면 Visual Studio C# 프로그래밍 설명서를 찾 습니다.
C# 코드 콘텐츠
다음 코드 샘플에서는 몇 가지 상황이 발생합니다.
- 인증
- PAT를 사용하여 자격 증명 만들기
- Azure DevOps Services URI 및 자격 증명을 사용하여 VSS커넥트ion 만들기
- VSS커넥트ion을 사용하여 클라이언트 검색
- 버그 만들기
- 필드 값을 설정하는 개체 배열 만들기
- 해당 배열을 직렬화된 json 개체로 변환
- 직렬화된 json 개체를 REST 엔드포인트로 보내기
C# 코드 조각
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.TeamFoundation.WorkItemTracking.WebApi;
using Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models;
using Microsoft.VisualStudio.Services.Common;
using Microsoft.VisualStudio.Services.WebApi.Patch.Json;
using Microsoft.VisualStudio.Services.WebApi.Patch;
using Microsoft.VisualStudio.Services.WebApi;
using System.Net.Http.Headers;
using System.Net.Http;
using Newtonsoft.Json;
public class CreateBug
{
readonly string _uri;
readonly string _personalAccessToken;
readonly string _project;
/// <summary>
/// Constructor. Manually set values to match your organization.
/// </summary>
public CreateBug()
{
_uri = "https://dev.azure.com/{orgName}";
_personalAccessToken = "personal access token";
_project = "project name";
}
/// <summary>
/// Create a bug using the .NET client library
/// </summary>
/// <returns>Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.WorkItem</returns>
public WorkItem CreateBugUsingClientLib()
{
Uri uri = new Uri(_uri);
string personalAccessToken = _personalAccessToken;
string project = _project;
VssBasicCredential credentials = new VssBasicCredential("", _personalAccessToken);
JsonPatchDocument patchDocument = new JsonPatchDocument();
//add fields and their values to your patch document
patchDocument.Add(
new JsonPatchOperation()
{
Operation = Operation.Add,
Path = "/fields/System.Title",
Value = "Authorization Errors"
}
);
patchDocument.Add(
new JsonPatchOperation()
{
Operation = Operation.Add,
Path = "/fields/Microsoft.VSTS.TCM.ReproSteps",
Value = "Our authorization logic needs to allow for users with Microsoft accounts (formerly Live Ids) - http:// msdn.microsoft.com/library/live/hh826547.aspx"
}
);
patchDocument.Add(
new JsonPatchOperation()
{
Operation = Operation.Add,
Path = "/fields/Microsoft.VSTS.Common.Priority",
Value = "1"
}
);
patchDocument.Add(
new JsonPatchOperation()
{
Operation = Operation.Add,
Path = "/fields/Microsoft.VSTS.Common.Severity",
Value = "2 - High"
}
);
VssConnection connection = new VssConnection(uri, credentials);
WorkItemTrackingHttpClient workItemTrackingHttpClient = connection.GetClient<WorkItemTrackingHttpClient>();
try
{
WorkItem result = workItemTrackingHttpClient.CreateWorkItemAsync(patchDocument, project, "Bug").Result;
Console.WriteLine("Bug Successfully Created: Bug #{0}", result.Id);
return result;
}
catch (AggregateException ex)
{
Console.WriteLine("Error creating bug: {0}", ex.InnerException.Message);
return null;
}
}
}
다음 단계
- 다른 빠른 시작 확인: 쿼리를 사용하여 작업 항목 목록 가져오기
- 통합 샘플 살펴보기