Ответ 1
Я написал небольшой WebHook, который точно заполняет этот пробел: gitdub. Он использует git-notifier для отправки по электронной почте одного сообщения за фиксацию.
Кто-нибудь придумал хороший способ получить электронную почту, когда коммиты будут перенаправлены на ваш репозиторий GitHub - что включает в себя изменение файлов?
(Я знаю, что у них есть почтовый сервис-крюк, но это не включает diff)
Месячные бонусные баллы, если различия раскрашены встроенным CSS, который можно просматривать в Gmail.
Я написал небольшой WebHook, который точно заполняет этот пробел: gitdub. Он использует git-notifier для отправки по электронной почте одного сообщения за фиксацию.
Вы правы, крючок электронной почты GitHub не включает diff: в настоящее время это запрос функции.
J-16 SDIZ также прав, git-hook-update-notify-email
будет только выполняться локально, а не на стороне GitHub.
Это не значит, что указанный script не может помочь: идея была бы
В локальном непокрытом репо вы можете:
old-rev
и new-rev
)git-hook-update-notify-email
В обоих случаях это означает, что локальная установка этого вида сервиса не идеальна.
Не может быть идеальным ответом для вас, но если вы настроите gitolite на свой собственный сервер, вы можете настроить git -commit-notifer, получить красивые цветные разн. письма и иметь неограниченные учетные записи git, так как вы владеете сервером. Я делаю это, и я никогда не оглядывался назад.
У вас нет сервера? Вы можете получить экземпляр Micro Amazon EC2 для дешевой цены (15 долларов в месяц). У нас есть до 12 разработчиков и 10 git repos, и все это отлично работает на микро-экземпляре.
Способ сделать это заключается в добавлении крюка уведомлений script, который отправляет данные в вашу систему, причем каждая фиксация, которая была нажата на github.
Например: полезная нагрузка состоит из всех применяемых коммитов, каждая из которых имеет идентификатор:
{
:before => before,
:after => after,
:ref => ref,
:commits => [{
:id => commit.id, <--- here
[...]
Второй шаг - сделать ваш script триггером вызов github, используя github API, который извлекает каждую фиксацию, включенную в полезную нагрузку. Ответ включает diff для каждого файла, который затем вы можете отправить своим разработчикам.
Например: http://developer.github.com/v3/repos/commits/#get-a-single-commit
GET /repos/:owner/:repo/commits/:sha
: sha - это идентификатор фиксации, для которой вы получаете код, и ответ выглядит следующим образом:
[...]
"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
}
[...]
Надеюсь, это поможет. Пожалуйста, спросите, нужна ли вам дополнительная информация о том, как это сделать.