博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GitBlit hooks 简单的分支保护与控制
阅读量:6443 次
发布时间:2019-06-23

本文共 1326 字,大约阅读时间需要 4 分钟。

hot3.png

import java.text.MessageFormat;import com.gitblit.GitBlitimport com.gitblit.models.RepositoryModelimport com.gitblit.models.UserModelimport org.eclipse.jgit.transport.ReceiveCommandimport org.eclipse.jgit.transport.ReceiveCommand.Resultimport org.slf4j.Loggerimport 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

你可能感兴趣的文章
ELK学习总结(3-2)elk的过滤查询
查看>>
快速定位oracle故障-恩墨
查看>>
Redis可视化工具 Redis Desktop Manager
查看>>
Go基础系列:为select设置超时时间
查看>>
Android网络请求之OkHttp框架
查看>>
《Apache Kafka实战》读书笔记-调优Kafka集群
查看>>
小程序开发事项
查看>>
福利 | 2018各大技术大会资料汇总(可下载)
查看>>
寻找下一代CTO - 激发潜能把握成功!!
查看>>
用DELPHI 开发压缩、解压、自解压、加密
查看>>
Linux命令行得到系统IP
查看>>
SQL Server索引的维护 - 索引碎片、填充因子 <第三篇>
查看>>
python类型转换、数值操作(收藏)
查看>>
mysql delimiter
查看>>
关于C#静态构造函数的几点说明
查看>>
理解C# 4 dynamic(4) – 让人惊艳的Clay
查看>>
管理-职业化沟通
查看>>
angular之$compile
查看>>
SQL中Truncate的用法
查看>>
一键安装docker-ce
查看>>