我正在尝试以编程方式将提交链接到TFS中的工作项,我想我已经关闭了。在创建新的ExternalLink时,我很难形成LinkedArtifactUri
属性。我可以对工作项运行简单查询,以查看此属性应如下所示:
"vstfs:///Git/Commit/ef43137b-a906-47b1-8dd4-0438b26c20c4%2fd211ee62-075d-4419-9d0b-cb58b76ae9dd%2fedfe1d438a77c2a95afa30e625f5dabe2656dea0"
所以我开始确定这个字符串中的GUID来自哪里,我能够弄清楚前两个,但我目前被困在最后一个。第一个GUID是项目ID(通过执行_store.Value.Projects[TEAM_NAME].guid
之类的操作可以检索。第二个是Git Repo ID。有人可以告诉我第三个GUID可能是什么吗?
如果我能找出最后一个GUID的位置,那么这个代码应该可行:
var item = _store.Value.GetWorkItem(165464); //work item id #
var gitRepoService = _projectCollection.GetService<GitRepositoryService>();
var gitProjectRepoService = gitRepoService.QueryRepositories("TEAM_NAME");
var defaultGitRepo = gitProjectRepoService.Single(gr =>
gr.Name.Equals("REPO_NAME"));
var gitGuid = defaultGitRepo.Id;
var proj = _store.Value.Projects["TEAM_NAME"];
var id = proj.Guid;
var linkToAdd = new ExternalLink(_store.Value.RegisteredLinkTypes[ArtifactLinkIds.Commit], $"vstfs:///Git/Commit/{id}%{gitGuid}%{Where_does_this_guid_come_from}");
item.Links.Add(linkToAdd);
item.Save();
非常感谢你的时间。如果我不清楚或者您是否还需要我的任何其他信息,请告诉我。