【发布时间】:2010-10-07 19:57:24
【问题描述】:
如何配置适当的 Git 挂钩,以便在将一组更改推送到上游存储库时发送摘要电子邮件?
【问题讨论】:
-
对于任何 git repo 的版本更新(新标签),您可以使用 git-notifier.com 发送电子邮件通知(免费)或短信通知(付费)
如何配置适当的 Git 挂钩,以便在将一组更改推送到上游存储库时发送摘要电子邮件?
【问题讨论】:
另一种更现代的方法是使用git-multimail,如下面的Chords 所建议的那样。
这就是你在 2009 年的做法。
您可以在 $GITDIR/hooks 的 post-receive 挂钩中添加类似 this 的内容,或者使用源 (Available here) 的 contrib 目录中的脚本
【讨论】:
这是我找到的最简单的解决方案:
1) 在github.com 上登录您的 gitHub 帐户
2) 在主标签中点击设置
3) 从主导航中选择Service Hooks
4) 从可用的挂钩中选择电子邮件
5) 在地址
字段中填写您的电子邮件地址6) 选中复选框作者发送
7) 选中复选框活动
8) 点击更新设置
可选:您可以点击Test Hook进行测试,检查您的收件箱,您应该会收到电子邮件。
还有按流程制作的图片:
现在对于总决赛,我得到了经过测试和批准的答案。
当 gitHub 的 Service Hooks->Email 最多只允许 2 个收件人时,如何向所有开发团队成员发送电子邮件}。
答案是Service Hook->Email @ GitHub && Google groups
的组合【讨论】:
这是我每次有人推送到存储库时向用户发送电子邮件通知的方式。
Setting Up Git Commit Email Notification
它基于安迪·帕金斯的剧本。我将其更改为使用 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 没有明显区别? :-/
示例配置:
# 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] "
【讨论】:
我设法做到了这一点,但不得不选择使用 contrib 脚本,而不是 Alexandre Julliard 的其他 (perl) 脚本。它看起来更漂亮,更可配置,但是使用后缀我没有可以接受“-s”的邮件命令?这是我的方式:
http://pastie.textmate.org/695323
显示更多信息会很不错,比如完整的补丁、gitweb 链接和提交图,但是这个脚本只能做第一个 - 如果我使用 hooks.showrev 似乎。
无论如何,欢呼并感谢您的建议!
【讨论】:
如果您使用 Windows,scm-notifier 会很有帮助。
【讨论】:
不完全是一个完整的答案,因为它是 Github 特定的,但如果你碰巧使用 Github,配置“服务挂钩”非常容易。
对于您要监控的每个存储库,输入设置/服务挂钩。
有很多可用的集成,例如 Trac、Twitter、Amazon SNS、Jira、Asana、Bugzilla、FogBugz、IRC、Jabber、Pivotal Tracker、Trello 和电子邮件....
只需选择电子邮件并使用群组电子邮件地址提供它。
我们使用电子邮件通知来同步我们的开发人员。
【讨论】:
如果您使用 GitLab,您可以为此使用“Email-on-push”项目服务,它可以在项目设置中的服务下找到。
【讨论】:
您可以使用预提交:
#!/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
测试:
echo "# some change" >> Gemfile && git commit -m 'some change' Gemfile
【讨论】:
在您的存储库下的 GitLab 中:
打开一个新页面推送电子邮件
还有一个禁用代码差异选项,可以排除通知正文中可能敏感的代码差异。它是可选的。
更多详情: 点击Here
【讨论】: