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

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

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

4b9b3361

Ответ 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