我们使用带有git源代码管理的TFS 2013。我想强制执行一些规则,例如签入/提交消息格式。TFS不支持git服务器挂钩,所以我不得不通过实现ISubscriber接口来编写插件。
插件部分工作-git推送时会拒绝消息与regex规则不匹配的git提交。问题是-来自插件的自定义状态消息没有显示。唯一通用消息:
! [remote rejected] master -> master (The reference was rejected by a plugin.)
error: failed to push some refs to 'http://repo_server
是否可以在GIT推送时显示来自TFS插件的自定义消息?如果是,我做错了什么?
插件大部分是从这里复制的
提交消息验证的代码段:
var regex = new Regex(@"regex");
foreach (var item in pushNotification.IncludedCommits)
{
var gitCommit = (TfsGitCommit)repository.LookupObject(requestContext, item);
string comment = gitCommit.GetComment(requestContext);
if (!regex.IsMatch(comment))
{
statusCode = 1;
statusMessage = "Wrong commit message format. Proper message: sample_message";
return EventNotificationStatus.ActionDenied;
}
}
目前似乎不可能:msdn论坛
TFS当前不支持修改返回到git客户端的消息。