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


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

10 98

10 ответов:

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


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

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

вот самое простое решение я нашел:

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

2) Во вкладке "Основные" нажмите на кнопку настройки

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

4) из доступных Крючков выберите Email

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

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

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

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

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

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

enter image description here

enter image description here

enter image description here

enter image description here

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

как отправить электронную почту всем членам команды разработчиков, когда сервис GitHub Hooks - > электронная почта позволяет только не более 2 получателей }.

ответ-это комбинация Service Hook - > Email @ GitHub & & Google groups

  1. первый вход в свой аккаунт google
  2. на Группы Google и в верхней части нажмите на создать Группа
  3. введите имя группы, адрес электронной почты группы (будет копировать / вставлять в GitHub Сервисный крючок - >адрес электронной почты), описание группы
  4. после этого нажмите кнопку Создать в верхней части, Ваша новая группа должна быть создано сейчас
  5. после этого в меню слева нажмите пригласить участников и тип в адресах электронной почты ваших товарищей по команде
  6. после этого нажмите отправить приглашения (когда члены вашей семьи примут приглашение) они сейчас формально члены этой группы
  7. в меню слева нажмите на кнопку Все Члены и проверьте 4-й колонка называется доставка каждый член команды должен иметь возможность Все Сообщения!--8-->.
  8. после этого я хотел бы получить кредит Мистер Клемент Эскофье и пожалуйста, следуйте его рекомендациям @ Clement Escoffier:: Send GitHub commits to a Google Group о том, как закончить ее. {Спасибо Клемент :)}
  9. если ссылка становится недоступной вот еще одна ссылка на мои gdoc @ PDF-версия руководства Клементса

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

Настройка Git Commit Email Notification

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

Робин Зоммер ' s 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)

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

пример conf:

# 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] "

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

http://pastie.textmate.org/695323

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

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

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

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

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

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