当提交被推送到您的GitHub仓库时,有没有人想出一个获得电子邮件的好方法 - 包括更改文件差异?
(我知道他们有一个电子邮件服务挂钩 - 但不包括差异)
如果使用可在Gmail中查看的内嵌CSS对差异进行着色,则可获得巨额奖励积分。
答案 0 :(得分:9)
我写了一个小小的WebHook,正好填补了这个空白:gitdub。它利用git-notifier每次提交发送一封电子邮件。
答案 1 :(得分:4)
你是对的,GitHub电子邮件服务钩子不包括差异:这是一个 feature request 。
J-16 SDIZ也是正确的,git-hook-update-notify-email
只会在本地执行,而不是在GitHub端执行。
这并不意味着所说的脚本无法帮助:想法是
在本地非裸仓库中,您可以:
old-rev
和new-rev
之间的差异)git-hook-update-notify-email
在这两种情况下,这意味着在本地设置这种服务,这是不理想的。
答案 2 :(得分:2)
可能不是您的理想答案,但如果您在自己的服务器上设置gitolite,则可以设置git-commit-notifer,获取漂亮的彩色差异电子邮件,并拥有无限的git帐户,因为您拥有服务器。我这样做了,我从未回头。
没有服务器?您可以获得一个微型Amazon EC2实例,价格便宜(每月15美元)。我们有多达12个开发人员和10个git repos,它们在微型实例上运行良好。
答案 3 :(得分:2)
执行此操作的方法是添加一个通知挂钩脚本,该脚本将数据发布到您的系统,每次提交都已推送到github。
例如:有效载荷由每个应用的提交组成,每个提交都有一个id:
{
:before => before,
:after => after,
:ref => ref,
:commits => [{
:id => commit.id, <--- here
[...]
第二步是让你的脚本使用github API触发对github的调用,该github获取有效负载中包含的每个提交。响应包括每个文件的差异,然后您可以通过电子邮件发送给开发人员。
例如:http://developer.github.com/v3/repos/commits/#get-a-single-commit
GET /repos/:owner/:repo/commits/:sha
:sha是您获取代码的提交的ID,响应如下所示:
[...]
"files": [
{
"filename": "file1.txt",
"additions": 10,
"deletions": 2,
"changes": 12,
"status": "modified",
"raw_url": "https://github.com/octocat/Hello-World/raw/7ca483543807a51b6079e54ac4cc392bc29ae284/file1.txt",
"blob_url": "https://github.com/octocat/Hello-World/blob/7ca483543807a51b6079e54ac4cc392bc29ae284/file1.txt",
"patch": "@@ -29,7 +29,7 @@\n....." <---- HERE
}
[...]
希望这会有所帮助。请询问您是否需要有关如何操作的更多详细信息。