gitblit新建仓库后自定义groovy脚本的钩子文件

前言

本篇博文继gitbilt的初始化后,主要记录有关gitblit仓库钩子的使用

钩子(hook)

什么是钩子呢,这里不具体介绍钩子是干嘛的了,不知道的同学去查一下git hook是啥吧,gitblit的钩子和git自身的hook还不太一样,是平台自己集成的一种钩子,用了groovy脚本,groovy脚本的语法也自己学习一下吧

钩子创建

在这里插入图片描述

首先我们创建钩子文件,钩子文件在哪呢,就在我们gitblit根目录下data->groovy目录下,我们可以在目录下根据功能来创建文件

钩子的功能

钩子主要分了两大块功能

  • pre-receive

Pre-receive hooks会在推送接收后,refs 更新之前执行,如果想要拒绝推送,就设置这种hook就可以

  • post-receive

Post-receive hooks 会在推送接收后, refs 更新之后执行。如果想在推送结束后,执行某些事情,比如发邮件或者自动化执行某件事情,可以设置这种hook

钩子的设置

首先我们在groovy下建立两个脚本:
pre_test_hook.groovy
post_test_hook.groovy

在这里插入图片描述

我们进入到gitblit的管理页面
找到需要设置的仓库点进去
选择右侧的编辑
在编辑页面选择左侧tap栏的receive
可以看到pre和post两类脚本的设置,双击目标脚本,保存即可

功能展示

  • 周四-周日期间禁止推送代码
  • 推送代码成功后,管理员收到邮件

我们准备两个小功能用作演示

推送禁止功能

在这里插入图片描述

首先我们将刚新建的pre_test_hook.groovy脚本,指定给我们当前使用的仓库

import org.eclipse.jgit.transport.ReceiveCommand
import org.eclipse.jgit.transport.ReceiveCommand.Result
import static java.util.Calendar.DAY_OF_WEEK


def date = new Date()

def week = date[DAY_OF_WEEK]

for (ReceiveCommand command : commands) {
    if (week==5 || week==6) {
        command.setResult(Result.REJECTED_OTHER_REASON, "周四周五禁止上传代码!!")
    }
}

附上代码,上述代码,主要功能是判断当前日期是否在周四-周五期间,如果是,则禁止推送代码

在这里插入图片描述

今天周四,我们推送一下代码,推送失败,可以在打印台看到我们的日志

推送后触发功能

在这里插入图片描述

首先我们将刚新建的post_test_hook.groovy脚本,指定给我们当前使用的仓库

import com.gitblit.utils.JGitUtils
import org.eclipse.jgit.lib.Repository
import org.eclipse.jgit.transport.ReceiveCommand

String triggerUrl = "http://内网地址/job/jenkins任务名/buildWithParameters?任务参数" 
try {
    def url = new URL(triggerUrl);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestProperty("Cookie", "jenkins-timestamper-offset=-28800000000000000000; screenResolution=1920x1080; JSESSIONID.b0b6f386=node01sfcleub6om466nw6tvlzkh2v246.node0");
    connection.getContent();
} catch (Exception ex) {
    logger.info("Catching the exception")
}

附上代码,上述代码,主要功能是在推送成功后,执行以下jenkins的任务

推送

  • Github
https://github.com/KingSun5

结语

若是觉得博主的文章写的不错,不妨关注一下博主,点赞一下博文,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。
QQ交流群:806091680(Chinar)
该群为CSDN博主Chinar所创,推荐一下!我也在群里!
本文属于原创文章,转载请著名作者出处并置顶!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值