我可以通过编程方式将bug添加到TFS中,
var tfsURI = new Uri("http://test:8080/tfs");
var networkCredential1 = new NetworkCredential("test", "test!");
ICredentials credential = (ICredentials)networkCredential1;
Microsoft.VisualStudio.Services.Common.WindowsCredential winCred = new Microsoft.VisualStudio.Services.Common.WindowsCredential(credential);
VssCredentials vssCredentials = new VssCredentials(winCred);
using (TfsTeamProjectCollection collection = new TfsTeamProjectCollection(tfsURI, vssCredentials))
{
collection.EnsureAuthenticated();
WorkItemStore workItemStore = collection.GetService<WorkItemStore>();
Project teamProject = workItemStore.Projects["Test"];
WorkItemType workItemType = teamProject.WorkItemTypes["Bug"];
WorkItem Defect = new WorkItem(workItemType);
FileInfo fi = new FileInfo(@"C:\\Document.docx");
Attachment tfsAttachment = new Attachment(fi.FullName);
Defect.Attachments.Add(tfsAttachment);
Defect.Title = "Testing from VS to TFS Bug";
Defect.Description = "Testing from VS to entered Bug in to TFS.";
Defect.Fields["Assigned To"].Value = "Test";
Defect.Save();
} 我新创建了WorkItem ID,Defect.ID为我提供了workitemID。
如何通过传递ID获得新创建的WOrkItem的URL。让我知道是否有可用的API?我需要新创建的WorkItem的HTML,以便任何人点击WorkItem时,创建的WorkItem将是开放的。
发布于 2019-08-22 17:23:46
经过大量的研究,我找到了解决办法,可能会对未来的人有所帮助:
var tfsURI = new Uri("http://test:8080/tfs");
var networkCredential1 = new NetworkCredential("test", "test!");
ICredentials credential = (ICredentials)networkCredential1;
Microsoft.VisualStudio.Services.Common.WindowsCredential winCred = new Microsoft.VisualStudio.Services.Common.WindowsCredential(credential);
VssCredentials vssCredentials = new VssCredentials(winCred);
using (TfsTeamProjectCollection collection = new TfsTeamProjectCollection(tfsURI, vssCredentials))
{
collection.EnsureAuthenticated();
TswaClientHyperlinkService hyperlinkService =
collection.GetService<TswaClientHyperlinkService>();
String TFSurl = hyperlinkService.GetWorkItemEditorUrl(17648).ToString(); //17648 WorkItem ID
}发布于 2019-08-22 09:43:41
可以使用Rest直接返回单个工作项。
GET https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/{id}?api-version=5.1
但是,这只会为所创建的bug获取json数据的url,而不是bug的HTML页面的URL。例如,我得到的输出低于
https://tfsurl:8080/_apis/wit/workItems/workitemID当我在浏览器中加载上面的链接时,我得到了JSON数据,而不是我创建的工作项的HTML页面。
猜测您希望在web门户中获取HTML的url。
在我的例子中,是这样的,在这里,DefaultCollection是集合名,PatrickProject是项目名。在本例中,我使用了这个url并去掉了id '172‘,并使用了新创建的工作项的ID。这将返回到工作项HTML页面的URL。
所以这是一个固定的格式,如果您有新创建的WorkItem ID和集合名称、项目名称,您只需要遵循上面的格式并更改工作项ID的最后一个值,就这样,忽略您创建的工作项类型。
希望这能帮上忙!
https://stackoverflow.com/questions/57597711
复制相似问题