import java.text.MessageFormat;
import com.gitblit.GitBlit
import com.gitblit.models.RepositoryModel
import com.gitblit.models.UserModel
import org.eclipse.jgit.transport.ReceiveCommand
import org.eclipse.jgit.transport.ReceiveCommand.Result
import org.slf4j.Logger
import com.gitblit.utils.ClientLogger
//判断用户信息,是否为白名单
if(user.username == 'admin'){
logger.info("允许,用户 ${user.username} 对 ${repository.name} 进行推送共 ${commands.size} 条信息")
}else{
//全局变量
def blocked = false
//设定需要保护的分支
def branch = 'refs/heads/master'
//判断方法
switch (repository.name) {
case 'test.git':
//需要控制的版本库名称
for (ReceiveCommand command : commands) {
def updatedRef = command.refName
//判断是否为设定的分支
if (updatedRef.equals(branch)) {
// 调用 result 接口,使用其它错误,并写入描述
command.setResult(Result.REJECTED_OTHER_REASON, "权限不足,无法对 ${repository.name} 版本库下的 ${updatedRef} 分支进行推送,请联系管理员")
blocked = true
}
}
break
default:
break
}
if (blocked) {
// 返回 false 结束操作
//用户信息摘要
logger.info("用户 ${user.username} 尝试对 ${repository.name} 进行推送,共 ${commands.size} 条信息")
return false
}
}
转载于:https://my.oschina.net/u/3756690/blog/1610059