Git钩子发送电子邮件通知回购更改

如果将一组更改推送到上游存储库,如何configuration相应的Git挂接以发送摘要电子邮件?

另一种更现代的方法是使用git-multimail ,如下面的Chords所示。


这是你在2009年做到的。

你可以在$ GITDIR / hooks中的post-receive钩子中添加这样的内容,或者在源码的contrib目录中使用脚本(在这里可用)

这是我find的最简单的解决scheme:

1)在github.com上login到你的gitHub帐户

2)在主选项卡上点击设置

3)从主导航select服务钩子

4)从可用的钩子select电子邮件

5)填写您的电子邮件地址字段地址

6)选中“ 从作者发送 ”checkbox

7)选中checkbox活动

8)点击更新设置

可选:您可以点击Test Hook进行testing,检查您的收件箱是否应该收到电子邮件。

还有根据过程制作的图像:

在这里输入图像描述

在这里输入图像描述

在这里输入图像描述

在这里输入图像描述

而现在的总决赛,我的答案已经在我身边进行了testing和认可。

如何发送电子邮件给所有开发团队成员,当gitHub的服务挂钩 – >电子邮件只允许最多2个收件人}

答案是Service Hook-> Email @ GitHub && Google组的组合

  1. 首先login到您的谷歌帐户
  2. 转到Google网上论坛 ,然后点击创build群组
  3. input组名称,组电子邮件地址(将复制/粘贴到GitHub服务钩 – >电子邮件地址),组描述
  4. 之后,点击顶部的“创build”button,现在应该创build新组
  5. 之后,在左边的菜单中点击邀请成员,然后input您的队友的电子邮件地址
  6. 之后,点击发送邀请 (当您的成员接受邀请),他们现在正式成为这个组的成员
  7. 在左边的菜单中点击所有成员,然后选中第四个名为Delivery的列,每个团队成员都可以selectAll Email
  8. 之后,我要感谢Clement Escoffier先生 ,请遵循他的指导方针@ Clement Escoffier ::发送Github向Google小组提交如何完成此项任务的承诺 。 {谢谢Clement :)}
  9. 如果链接不可用,这里是另一个链接到我的gDocs @ PDF版本的Clements指南

每当有人推送到存储库时,这是我向用户发送电子邮件通知的方式。

设置Git确认电子邮件通知

这是基于Andy Parkins的脚本。 我将其更改为使用SMTP发送电子邮件。 当然,也可以使用Gmail的SMTP。

罗宾·索默 ( Robin Sommer )的git-notifier用下面的格式生成了非常好的摘要:

Subject: [git/git-notifier] master: Adding www target to Makefile. (7dc1f95) Repository : ssh://<removed>/git-notifier On branch : master >--------------------------------------------------------------- commit 7dc1f95c97275618d5bde1aaf6760cd7ff6a6ef7 Author: Robin Sommer <robin@icir.org> Date: Sun Dec 19 20:21:38 2010 -0800 Adding www target to Makefile. >--------------------------------------------------------------- Makefile | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/Makefile b/Makefile index e184c66..9c9951b 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,8 @@ VERSION = 0.1 DISTFILES = git-notifier README COPYING +WWW = $(HOME)/www/git-notifier + all: dist: @@ -13,3 +15,7 @@ dist: cp $(DISTFILES) git-notifier-$(VERSION) tar czvf git-notifier-$(VERSION).tgz git-notifier-$(VERSION) rm -rf git-notifier-$(VERSION) + +www: dist + rst2html.py README >$(WWW)/index.html + cp git-notifier-$(VERSION).tgz $(WWW) 

设置hooks.showrev是没有区别的差异? : – /

示例conf:

 # less users/cj.git/config [core] repositoryformatversion = 0 filemode = true bare = true [hooks] mailinglist = cj@yoga.ee showrev = "git show -C %s; echo" emailprefix = "[sabu gitosis server] " 

我设法做到这一点,但不得不select使用contrib脚本,而不是由亚历山大Julliard其他(perl)脚本。 它看起来更漂亮,更可configuration,但与后缀我没有邮件命令,将接受“-s”? 这是我的方式:

http://pastie.textmate.org/695323

这将是很好的显示一些更多的信息,如完整的补丁,gitweb链接和提交图,但是这个脚本只能做第一个 – 如果我玩hooks.showrev似乎。

无论如何,欢呼和感谢您的build议!

如果你使用Windows, scm-notifier会有帮助。

因为它是Github特定的,所以不完全是一个完整的答案,但是如果碰巧使用Github,configuration“Service Hooks”非常容易。
对于您希望监视的每个存储库,请input设置/服务挂钩。
有很多可用的集成,如Trac,Twitter,亚马逊SNS,吉拉,Asana,Bugzilla,FogBugz,IRC,Jabber,Pivotal Tracker,Trello和Email。
只需select电子邮件,并用组电子邮件地址提供。
我们使用电子邮件通知来同步我们的开发者。

如果您使用GitLab,则可以使用“推送电子邮件”项目服务,可以在项目设置中的服务下find它。

你可以使用预先提交:

 #!/usr/bin/env ruby require 'mail' Mail.defaults do delivery_method :smtp, address: 'smtp.gmail.com', port: 587, user_name: '...', password: '...', authentication: 'plain', enable_starttls_auto: true end changes=`git diff --cached --unified=0 Gemfile Bowerfile` unless changes.empty? Mail.deliver do from '...' to '...' subject '[PROJECT] Plese confirm team can use libraries' body changes end end 

安装:

 cd project cp pre-commit .git/hooks chmod +x .git/hooks/pre-commit gem install mail 

testing:

 echo "# some change" >> Gemfile && git commit -m 'some change' Gemfile