我在内部使用TFS 2017 Update 1。我在提交的日志注释中使用#ID,以便将(用户故事,任务等的)工作项ID与源代码的GIT提交相关联。它可以正常工作(我可以看到从workitem界面提交的链接),但是我想将TFS SDK API与tfs聚合器一起使用,以便更好地管理GIT提交(例如使用自定义字段的仪表板)。如何从Microsoft.TeamFoundation.WorkItemTracking.Client访问git commit?
答案 0 :(得分:0)
git提交链接到类型为“ ExternalLink”的工作项。因此,您可以获得工作项的链接以查询该信息。
WorkItemStore wis = ttpc.GetService<WorkItemStore>();
int workitemid = 1;
WorkItem wi = wis.GetWorkItem(workitemid);
foreach (Link w in wi.Links)
{
if (w.GetType().ToString() == "Microsoft.TeamFoundation.WorkItemTracking.Client.ExternalLink")
{
ExternalLink el = (ExternalLink)w;
Console.WriteLine(el.LinkedArtifactUri);
}
}
LinkedArtifactUri将包含git commit的ID。然后您可以通过以下方式获取提交信息:
GitHttpClient ght = ttpc.GetClient<GitHttpClient>();
GitCommit gc = ght.GetCommitAsync("CommitID", "RepoID",99).Result;
Console.WriteLine(gc.Committer.Date);
Console.WriteLine(gc.Committer.Name);
foreach (GitChange gch in gc.Changes)
{
Console.WriteLine(gch.Item.Path);
}
Console.ReadLine();