Setting Up Git Commit Email Notifications

A method to send email notification to a list email addresses by the remote git server after every push from the client will be introduced.

After the client pushing to the git server, several actions are triggered. These actions are done by hooks. Hooks are scripts placed in the GIT_DIR/hooks directory. Here, GIT_DIR is the directory of the git repository on the git server. One of the trigger action is post-receive,  so we can put a executable script with name post-receive under GIT_DIR/hooks. For every push by client, post-receive will be executed to send email notification.

Git commit email notificationA sample notification email after client pushing two commits is show in the graph on the right. The subject contains a prefix, the repository name and the last commit message. The body of the email contains the commit log and summary of the changes.

Now lets go to the detail of configuring the mechanism.

Get the post-receive script

My script that sends email like the example described above can be downloaded from: git post-receive script.

Or view the source code: git post-receive script

This script use smtp server to send email. You need to change the smtp server address at the end of the script. Simply change smtp=”smtp://smtp.cse.ust.hk” to the smtp server you use. You can not use my smtp server which is only allowed to send email without authorization inside of CSD in HKUST. If you like to use Gmail’s smtp, please refer to Sending Email from mailx Command on Linux Using Gmail’s Smtp.

This script is changed from Andy Parkins’s one which is in git’s distribution. On fedora 12, the original script can be found under /usr/share/git-core/contrib/hooks.

Put post-receive into hooks directory

After getting the post-receive script, you need to copy it to GIT_DIR/hooks/ directory on the git server.

Please note that this script should be executable. You may need to add executable mod bits to post-receive by

chmod a+x hooks/post-receive

when you are in GIT_DIR.

Change repository description

The repository name in the email subject is the first line of $GIT_DIR/description. Change the first line of the description file to you project’s name.

Change config

The sender’s email address, the mail list and the subject prefix is defined in GIT_DIR/config file. I like to edit this config file by hand which is as easy as using git config command.

Add these line to the config file:

[hooks]
 mailinglist = "email1@example.com email2@example.com"
 senderemail = "owner@exmaple.com"

The email addressed in mailing list is separated by space.

The default subject prefix is [GIT]. You can change it to any string you like by add hooks.emailprefix in config.

Now the email notification mechanism has been set up. You can change the script if more functions is needed.

原文链接:http://www.fclose.com/b/linux/1473/setting-up-git-commit-email-notification/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值