钩子在git服务器端的配置

post-receive介绍

post-receive钩子在客户端完成push动作之后被触发,它只执行一次,且不接受参数。它会接收一个标准输入,包含3个参数:

<old-value> SP <new-value> SP <ref-name> LF

SP是空格,LF是换行符,old-value表示上一个提交的SHA1码,new-value是指这一次提交的SHA1码,ref-name是分支的全称,例如:

refs/heads/master

了解了这个标准输入的内容后,就可以利用post-receive钩子来实现当有用户提交到git服务器时,用邮件通知其它用户这个git仓库有提交,或者用来做持续集成。

实现post-receive的shell脚本

#!/bin/bash

#echo -e "Hi all\n$branch branch has update\nBR\nBarry" | mail -s "$branch update" Barry.Wu@Harman.com
#branch=$(git symbolic-ref --short HEAD)
while read mes mes ref  //读取post-receive输入流中的3个参数
do
   branch=$(echo $ref | awk -F '/' '{print $3}')
   git checkout -b $branch
done
author=$(git log -1 | grep Author | awk -F ':' '{print $2}' | awk -F '<' '{print $1}' | sed 's/ //g')
content=$(git log -1)


if [ $author=="barry" ];then
   #curl --user aaa:123456 -s http://10.216.17.20:8080/job/k226daily/build?token=123456
   echo -e "Hi all\n$author has update in branch $branch\n $content\n\n\nBR\nBarry" | mail -s "$branch update" Barry.Wu@Harman.com
fi
这样当有一个叫barry的用户提交代码以后,git服务器端将会自动发邮件给需要的用户,可以实时获取git服务器状态。当然,这需要git服务器端支持sendmail发送邮件。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值