Подтвердить что ты не робот

Как получить электронную почту для GitHub?

Кто-нибудь придумал хороший способ получить электронную почту, когда коммиты будут перенаправлены на ваш репозиторий GitHub - что включает в себя изменение файлов?

(Я знаю, что у них есть почтовый сервис-крюк, но это не включает diff)

Месячные бонусные баллы, если различия раскрашены встроенным CSS, который можно просматривать в Gmail.

4b9b3361

Ответ 1

Я написал небольшой WebHook, который точно заполняет этот пробел: gitdub. Он использует git-notifier для отправки по электронной почте одного сообщения за фиксацию.

Ответ 2

Вы правы, крючок электронной почты GitHub не включает diff: в настоящее время это запрос функции.

J-16 SDIZ также прав, git-hook-update-notify-email будет только выполняться локально, а не на стороне GitHub.

Это не значит, что указанный script не может помочь: идея была бы

  • настроить голый репо на вашей стороне, клонируя репозиторий GitHub
  • установить клон этого базового репо
  • у вас есть задание cron (или задача Windows), получающее репо GitHub каждые 10 минут.
  • немедленно нажмите на локальный не-голый репо

В локальном непокрытом репо вы можете:

  • либо использовать крюк pre-receive (который как описано в книге Git, может использоваться для вычисления diff между old-rev и new-rev)
  • или используйте вышеупомянутый git-hook-update-notify-email

В обоих случаях это означает, что локальная установка этого вида сервиса не идеальна.

Ответ 3

Не может быть идеальным ответом для вас, но если вы настроите gitolite на свой собственный сервер, вы можете настроить git -commit-notifer, получить красивые цветные разн. письма и иметь неограниченные учетные записи git, так как вы владеете сервером. Я делаю это, и я никогда не оглядывался назад.

У вас нет сервера? Вы можете получить экземпляр Micro Amazon EC2 для дешевой цены (15 долларов в месяц). У нас есть до 12 разработчиков и 10 git repos, и все это отлично работает на микро-экземпляре.

Ответ 4

Способ сделать это заключается в добавлении крюка уведомлений 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
    } 
[...]

Надеюсь, это поможет. Пожалуйста, спросите, нужна ли вам дополнительная информация о том, как это сделать.