想要使用 C# 在 Azure DevOps 中基于工作项类型功能的功能标题获取功能详细信息#
Want to fetch feature details based on Feature title for workitem type feature in Azure DevOps using C#
我正在尝试开发一个控制台应用程序来获取 Azure DevOps 中工作项类型功能的工作项详细信息。
我想获取功能 ID、状态等详细信息。功能的标题将包含需求编号和需求名称,我将知道功能标题中的需求编号,并希望获取功能 ID(如果存在)。
我正在为我的代码使用这些 Nuget 包:
Microsoft.TeamFoundation.WorkItemTracking.WebApi;
Microsoft.VisualStudio.Services.WebApi;
首先,您必须通过 PAT 连接到服务并获取工作项客户端:
VssConnection connection = new VssConnection(new Uri(ServiceURL), new VssBasicCredential(string.Empty, PAT));
WitClient = connection.GetClient<WorkItemTrackingHttpClient>();
如果您知道工作项 ID,则可以获取工作项并在字段字典中查找其所有字段:
var wi = WitClient.GetWorkItemAsync(Id).Result;
foreach (var fieldName in wi.Fields.Keys)
Console.WriteLine(“{0,-40}: {1}”, fieldName, wi.Fields[fieldName].ToString());
如果您尝试通过标题内容查找工作项,可以使用wiql查询:
string queryWiqlList = @"SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = 'TEAM_PROJECT_NAME' and [System.Title] Contains '<YOUR SEARCH_TEXT>' and [System.State] <> 'Removed' and [System.State] <> 'Closed'";
Wiql wiql = new Wiql();
wiql.Query = wiqlStr;
WorkItemQueryResult result = WitClient.QueryByWiqlAsync(wiql).Result;
if (result != null)
{
if (result.WorkItems != null) // this is Flat List
foreach (var wiRef in result.WorkItems)
{
var wi = WitClient.GetWorkItemAsync(wiRef.Id).Result;
Console.WriteLine(String.Format("{0} - {1}", wi.Id, wi.Fields["System.Title"].ToString()));
}
}
我正在尝试开发一个控制台应用程序来获取 Azure DevOps 中工作项类型功能的工作项详细信息。
我想获取功能 ID、状态等详细信息。功能的标题将包含需求编号和需求名称,我将知道功能标题中的需求编号,并希望获取功能 ID(如果存在)。
我正在为我的代码使用这些 Nuget 包:
Microsoft.TeamFoundation.WorkItemTracking.WebApi;
Microsoft.VisualStudio.Services.WebApi;
首先,您必须通过 PAT 连接到服务并获取工作项客户端:
VssConnection connection = new VssConnection(new Uri(ServiceURL), new VssBasicCredential(string.Empty, PAT));
WitClient = connection.GetClient<WorkItemTrackingHttpClient>();
如果您知道工作项 ID,则可以获取工作项并在字段字典中查找其所有字段:
var wi = WitClient.GetWorkItemAsync(Id).Result;
foreach (var fieldName in wi.Fields.Keys)
Console.WriteLine(“{0,-40}: {1}”, fieldName, wi.Fields[fieldName].ToString());
如果您尝试通过标题内容查找工作项,可以使用wiql查询:
string queryWiqlList = @"SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = 'TEAM_PROJECT_NAME' and [System.Title] Contains '<YOUR SEARCH_TEXT>' and [System.State] <> 'Removed' and [System.State] <> 'Closed'";
Wiql wiql = new Wiql();
wiql.Query = wiqlStr;
WorkItemQueryResult result = WitClient.QueryByWiqlAsync(wiql).Result;
if (result != null)
{
if (result.WorkItems != null) // this is Flat List
foreach (var wiRef in result.WorkItems)
{
var wi = WitClient.GetWorkItemAsync(wiRef.Id).Result;
Console.WriteLine(String.Format("{0} - {1}", wi.Id, wi.Fields["System.Title"].ToString()));
}
}