Git hook для отправки уведомлений по электронной почте об изменениях репо

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

Ответ 1

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


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

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

Ответ 2

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

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

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

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

4) Из доступных кликов выберите Email

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

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

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

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

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

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

enter image description here

enter image description here

enter image description here

enter image description here

И теперь для Grand final у меня есть ответ, который проверен и одобрен на моей стороне.

Как отправить электронную почту всем членам группы разработчиков, когда gitHub Service Hooks- > Email разрешает использовать не более 2 получателей.

Ответ представляет собой комбинацию Service Hook- > Email @GitHub && & && Группы Google

  • Первый вход в вашу учетную запись google
  • Перейдите в Группы Google и в верхней части нажмите Создать группу
  • Введите имя группы, адрес электронной почты группы (скопируйте/вставьте в GitHub Service Hook- > Адрес электронной почты), Описание группы
  • После того, как вы нажмете кнопку Create в верхней части, ваша новая группа должна быть Создано сейчас
  • После этого в меню слева нажмите Пригласить участников и введите в адресах электронной почты ваших товарищей по команде.
  • После этого нажмите Отправить приглашения (когда ваши участники принимают приглашение), теперь они официально являются членами этой группы.
  • В меню слева нажмите Все участники и проверьте 4-й столбец Доставка, каждый член команды должен иметь опцию Вся электронная почта.
  • После этого я хотел бы поблагодарить Mr. Clement Escoffier и пожалуйста, следуйте его рекомендациям @Clement Escoffier:: Отправить Github обязывает группу Google о том, как закончи это. {Спасибо, Климент:)}
  • Если ссылка становится недоступной, это еще одна ссылка на мой gDocs @ PDF-версия руководства Clements

Ответ 3

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

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

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

Ответ 4

Робин Соммер 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 <[email protected]>
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)

Ответ 5

установка hooks.showrev не делает различимой разницы?: -/

Пример conf:

# less users/cj.git/config 
[core]
        repositoryformatversion = 0
        filemode = true
        bare = true
[hooks]
        mailinglist = [email protected]
        showrev = "git show -C %s; echo"
        emailprefix = "[sabu gitosis server] "

Ответ 6

Мне удалось это сделать, но мне пришлось отказаться от использования contrib script, а не другого (perl) script от Alexandre Julliard. Кажется, это более привлекательно и более настраиваемо, но с postfix у меня не было почтовой команды, которая принимала бы "-s"? Здесь мой путь:

http://pastie.textmate.org/695323

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

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

Ответ 7

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

Ответ 8

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

Ответ 9

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

Ответ 10

Вы можете использовать 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