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


101

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


Для обновления версии (новый ярлык) для любого репозитория git вы можете использовать git-notifier.com для отправки уведомлений по электронной почте (бесплатно) или уведомлений по SMS (платно)
Шольц

Ответы:


94

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


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

Вы можете добавить что - то вроде этого , чтобы ваш пост-получить крюк в $ GITDIR / крюками, или использовать скрипт в каталоге CONTRIB источника (доступно здесь)


Если я ссылаюсь на этот скрипт в своих хуках, должен ли ссылаться скрипт на вышестоящем хосте или локально?
Head

4
Хост, который выполняет перехват, поэтому в случае пост-приема - восходящий хост (тогда как перехватчику после фиксации потребуется сценарий на хосте, на котором выполняется фиксация).
mwalling

2
Аааа, но вы можете принять ответ, и вы оба получите больше репутации!
Пэт Нотц,

Часть, которая меня поразила, заключалась в настройке списка получателей. Наконец-то я понял, что вам нужно использовать git config: git config hooks.mailinglist "person1@example.com, person2@example.com"
ewalk

4
Стоит отметить, что ссылка в этом ответе больше не находится в активной разработке. Вместо этого используйте мультимедийную почту , о которой говорится в файле readme.
Аккорды

19

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

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

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

3) На главной панели навигации выберите Service Hooks.

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

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

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

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

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

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

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

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

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

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

Ответ - комбинация Service Hook-> Email @ GitHub && групп Google.

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

19
Это решение для гитхаба. Ничто в вопросе не говорит мне, что пользователь использует github. Похоже, это идеальный ответ на вопрос о github.
daramarak

3
Эта служба электронной почты будет прекращена после октября 2018 года. Таким образом, этот ответ недействителен после этого момента. developer.github.com/changes/…
Jeegar Patel

10

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

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

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


5

Робин Sommer «сек ГИТ-уведомитель создает очень хорошие резюме в следующем формате:

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

установка 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] "

Оказывается, версия git.kernel.org уважает hooks.showrev, но скрипт установки git по умолчанию - нет! Просто заменил скрипт chmod a + x и все заработало! Тем не менее, нужно понимать синтаксис
showrev

Подобные проблемы с отображением различий здесь: stackoverflow.com/questions/804601/…
HiQ CJ

1

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

http://pastie.textmate.org/695323

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

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



0

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


0

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


0

Вы можете использовать предварительную фиксацию:

#!/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

В GitLab в вашем репозитории:

  1. Щелкните "Настройка".
  2. Когда настройка развернется, вы увидите Интеграции . Нажмите здесь.

Открывается новая страница Электронные письма при нажатии

  1. Найдите и выберите Отправить из коммиттера .
  2. Также введите получателей через запятую в последнем поле.

Также есть опция Отключить различия кода, которые исключают потенциально чувствительные различия кода в теле уведомления. Это необязательно.

Для получения дополнительной информации: нажмите здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.