如何从 Microsoft.TeamFoundation.WorkItemTracking.Client 访问 git 提交的消息?
Posted
技术标签:
【中文标题】如何从 Microsoft.TeamFoundation.WorkItemTracking.Client 访问 git 提交的消息?【英文标题】:How access message of git commits from Microsoft.TeamFoundation.WorkItemTracking.Client? 【发布时间】:2020-03-10 05:08:31 【问题描述】:我在本地使用 TFS 2017 更新 1。我在提交的日志 cmets 中使用#ID,以便将工作项 ID(用户故事、任务等)与源代码的 GIT 提交相关联。它可以正常工作(我可以看到从工作项界面提交的链接)。
我想将 TFS SDK API 与 tfs 聚合器一起使用,以便更好地管理 GIT 提交(例如,当程序员完成特定的自定义 git 提交消息时,自动转换到工作项的自定义状态)。
如何从Microsoft.TeamFoundation.WorkItemTracking.Client
访问 git 提交的消息/日志,以便能够解析除here 描述的自定义消息(例如“修复 #123”或“关闭 #123”)?
【问题讨论】:
【参考方案1】:你不能只用WorkItemHttpClient
获得提交评论,你可以用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 不支持。
【讨论】:
以上是关于如何从 Microsoft.TeamFoundation.WorkItemTracking.Client 访问 git 提交的消息?的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数
如何从服务器获取和设置 android 中的 API(从服务器获取 int 值)?如何绑定和实现这个