Git hook для отправки электронного уведомления об изменениях в репо - PullRequest
99 голосов
/ 16 февраля 2009

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

Ответы [ 10 ]

93 голосов
/ 16 февраля 2009

Другой, более современный способ сделать это - git-multimail , как предложено Аккордами ниже.


Так вы это сделали в 2009 году.

Вы можете добавить что-то вроде this к своему хуку пост-получения в $ GITDIR / hooks или использовать скрипт в каталоге contrib исходного кода (доступно здесь)

16 голосов
/ 25 апреля 2013

Вот самое простое решение, которое я нашел:

1) Войдите в свою учетную запись gitHub на github.com

2) На главной вкладке нажмите Настройки

3) Из основной навигации выберите Сервисные зацепки

4) Из доступных крючков выберите E-mail

5) Введите свой адрес электронной почты в поле Адрес

6) Установите флажок Отправить от автора

7) Установите флажок Актив

8) Нажмите Обновить настройки

Необязательно: Вы можете нажать Test Hook для тестирования, проверьте свой почтовый ящик, вы должны получить электронную почту.

Также есть изображения, сделанные в соответствии с процессом:

enter image description here

enter image description here

enter image description here

enter image description here

А теперь для гранд-финала 1052 * у меня есть ответ, который проверен и одобрен на моей стороне.

Как отправить электронное письмо ВСЕМ членам команды разработчиков, если служебные зацепки gitHub-> Электронная почта разрешают не более 2 получателей} .

Ответ - комбинация Сервисный хук-> Email @ GitHub && группы Google

  1. Первый вход в вашу учетную запись Google
  2. Перейдите на Группы Google и в верхней части нажмите Создать группу
  3. Введите имя группы, адрес электронной почты группы (скопировать / вставить в GitHub Сервисный хук-> адрес электронной почты), описание группы
  4. После этого нажмите кнопку Создать вверху, ваша новая группа должна быть создано сейчас
  5. После этого в меню слева нажмите Пригласить участников и введите в адресах электронной почты ваших товарищей по команде
  6. После этого нажмите Отправить приглашения (когда ваши участники приглашение) теперь они официально являются членами этой группы
  7. В меню слева нажмите на Все участники и отметьте 4-й столбец с именем Доставка , каждый член команды должен иметь возможность Вся электронная почта .
  8. После этого я хотел бы кредит Мистер. Clement Escoffier и следуйте его указаниям @ Clement Escoffier :: Отправить Github коммиты в группу Google о том, как закончи это. {Спасибо, Клемент:)}
  9. Если ссылка становится недоступной, вот еще одна ссылка на мой gDocs @ PDF-версия руководства по Clements
10 голосов
/ 28 мая 2010

Это мой способ отправлять пользователям уведомления по электронной почте каждый раз, когда кто-нибудь нажимает на хранилище.

Настройка уведомления по электронной почте Git Commit

Он основан на сценариях Энди Паркинса. Я изменил его на используемый SMTP для отправки электронной почты. Конечно, можно использовать SMTP в Gmail.

5 голосов
/ 29 декабря 2010

Робин Соммер * 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)
4 голосов
/ 13 ноября 2009

настройка 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] "
1 голос
/ 12 ноября 2009

Мне удалось это сделать, но я должен был выбрать сценарий contrib, а не другой (perl) сценарий Александра Жулиарда. Это кажется более изящным и более настраиваемым, но с postfix у меня не было почтовой команды, которая принимала бы «-s»? Вот мой путь:

http://pastie.textmate.org/695323

Было бы неплохо показать некоторую дополнительную информацию, такую ​​как полный патч, ссылку на gitweb и график коммитов, но этот скрипт может сделать только первый - если я поиграюсь с hooks.showrev, кажется.

В любом случае, ура и спасибо за предложения!

0 голосов
/ 13 августа 2015

Вы можете использовать pre-commit:

#!/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
0 голосов
/ 14 января 2015

Если вы используете GitLab, вы можете использовать для этого сервис проекта «Email-on-push», его можно найти в разделе «Сервисы» в настройках проекта.

0 голосов
/ 18 декабря 2012

Не совсем полный ответ, поскольку он специфичен для Github, но если вам случится использовать Github, его чрезвычайно легко настроить "Service Hooks".
Для каждого репозитория, который вы хотите отслеживать, введите Настройки / Сервисные хуки.
Существует множество доступных интеграций, таких как Trac, Twitter, Amazon SNS, Jira, Asana, Bugzilla, FogBugz, IRC, Jabber, Pivotal Tracker, Trello и Email ....
Просто выберите адрес электронной почты и введите адрес электронной почты группы.
Мы используем уведомления по электронной почте для синхронизации наших разработчиков.

0 голосов
/ 09 октября 2012

Если вы используете Windows, scm-notifier будет полезно.

...