git 的访问消息如何从 Microsoft.TeamFoundation.WorkItemTracking.Client 提交?
How access message of git commits from Microsoft.TeamFoundation.WorkItemTracking.Client?
我在本地使用 TFS 2017 update 1。我在提交的日志注释中使用#ID,以便将工作项 ID(用户故事、任务等)与 GIT 源代码提交相关联。它正常工作(我可以看到从工作项界面提交的链接)。
我想将 TFS SDK API 与 tfs 聚合器一起使用,以便更好地管理 GIT 提交(例如,当特定自定义 git 时自动转换到工作项的自定义状态提交消息由程序员完成)。
如何访问 git 中的 git 从 Microsoft.TeamFoundation.WorkItemTracking.Client
提交,以便除了 here 描述的消息之外还能够解析自定义消息(例如 "Fixes #123" 或 "Close #123")?
你不能只用WorkItemHttpClient
得到commit comment,你可以用GitHttpClient
得到它。首先使用 WorkItemHttpClient
获取工作项链接,然后获取提交 ID 并使用 GitHttpClient
.
获取评论
一个工作示例:
VssClientCredentials cred = new VssClientCredentials();
VssConnection tfs = new VssConnection(new Uri("http://tfs-server:8080/tfs/collection"), cred);
var workItemClient = tfs.GetClient<WorkItemTrackingHttpClient>();
var gitClient = tfs.GetClient<GitHttpClient>();
int workItemId = 1213;
var workItem = workItemClient.GetWorkItemAsync("Project-Name", workItemId, expand: WorkItemExpand.Relations).Result;
// We need to retrieve the commit id from the links, debug the following line to understand what I did
var commitId = wit.Relations.Where(r => r.Url.Contains("Git")).FirstOrDefault().Url.Split('%')[2].Remove(0,2);
var commit = gitClient.GetCommitAsync("Project-Name", commitId, "Repo-Name").Result;
string comment = commit.comment;
顺便说一下,您不能使用 Fixes #123
语法,因为 TFS 2017 不支持它。
我在本地使用 TFS 2017 update 1。我在提交的日志注释中使用#ID,以便将工作项 ID(用户故事、任务等)与 GIT 源代码提交相关联。它正常工作(我可以看到从工作项界面提交的链接)。
我想将 TFS SDK API 与 tfs 聚合器一起使用,以便更好地管理 GIT 提交(例如,当特定自定义 git 时自动转换到工作项的自定义状态提交消息由程序员完成)。
如何访问 git 中的 git 从 Microsoft.TeamFoundation.WorkItemTracking.Client
提交,以便除了 here 描述的消息之外还能够解析自定义消息(例如 "Fixes #123" 或 "Close #123")?
你不能只用WorkItemHttpClient
得到commit comment,你可以用GitHttpClient
得到它。首先使用 WorkItemHttpClient
获取工作项链接,然后获取提交 ID 并使用 GitHttpClient
.
一个工作示例:
VssClientCredentials cred = new VssClientCredentials();
VssConnection tfs = new VssConnection(new Uri("http://tfs-server:8080/tfs/collection"), cred);
var workItemClient = tfs.GetClient<WorkItemTrackingHttpClient>();
var gitClient = tfs.GetClient<GitHttpClient>();
int workItemId = 1213;
var workItem = workItemClient.GetWorkItemAsync("Project-Name", workItemId, expand: WorkItemExpand.Relations).Result;
// We need to retrieve the commit id from the links, debug the following line to understand what I did
var commitId = wit.Relations.Where(r => r.Url.Contains("Git")).FirstOrDefault().Url.Split('%')[2].Remove(0,2);
var commit = gitClient.GetCommitAsync("Project-Name", commitId, "Repo-Name").Result;
string comment = commit.comment;
顺便说一下,您不能使用 Fixes #123
语法,因为 TFS 2017 不支持它。