Git-гак для надсилання сповіщення електронною поштою про зміни репо


101

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


Для оновлення версії (нова мітка) для будь-якого git repo ви можете скористатися git-notifier.com для надсилання сповіщень електронною поштою (безкоштовно) або SMS-повідомлень (оплачено)
Scholtz

Відповіді:


94

Ще один, більш сучасний спосіб зробити це за допомогою git-multimail , як запропоновано акордами нижче.


Ось як ви це зробили у 2009 році.

Ви можете додати що - щось на зразок цього , щоб ваш пост-отримати гак в $ GITDIR / гаками, або використовувати скрипт в каталозі CONTRIB джерела (є тут)


Якщо я посилаюсь на цей скрипт у своїх гачках, чи повинен вказаний сценарій розміщуватись на хост-версії чи локально?
Голова

4
Хост, який виконує гак, тому у випадку після отримання приймає хост у верхньому потоці (тоді як для гака, який виконує пост-фіксацію, знадобиться сценарій на хості, на якому виконується фіксація).
mwalling

2
А-а-а, але ви можете прийняти відповідь, і ви обоє отримаєте більшу репутацію!
Пат Нотц

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

4
Варто зазначити, що посилання в цій відповіді вже не знаходиться в активному розвитку. Натомість використовуйте мультимайл , про який згадується в readme.
Акорди

19

Ось найпростіше рішення, яке я знайшов:

1) Увійдіть у свій обліковий запис gitHub gitHub github.com

2) У головній вкладці натисніть на Налаштування

3) З головної навігації виберіть Службові гачки

4) З доступних гачків виберіть електронну пошту

5) Заповніть свою електронну адресу в полі Адреса

6) Установіть прапорець Надіслати від автора

7) Поставте прапорець Активний

8) Клацніть на Налаштування оновлення

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

Також є зображення, зроблені відповідно до процесу:

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

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

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

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

А тепер для грандіозного фіналу я маю відповідь, яка перевірена і схвалена у мене.

Як надсилати електронну пошту ВСІМ членам групи розробників, коли Службові гачки gitHub-> Електронна пошта дозволяє лише максимум двом одержувачам} .

Відповідь - комбінація груп Service Hook-> Email @ GitHub && Google

  1. Спочатку увійдіть у свій обліковий запис google
  2. Перейдіть у Групи Google, а вгорі натисніть на Створити групу
  3. Введіть назву групи, адресу електронної пошти групи (скопіюйте та вставте у службовий гачок GitHub-> електронна адреса), опис групи
  4. Після цього натисніть кнопку Створити вгорі, ваша нова група повинна бути створена зараз
  5. Після цього в меню ліворуч натисніть Запросіть членів та введіть електронні адреси своїх товаришів по команді
  6. Після цього натисніть Надіслати запрошення (коли ваші члени приймають запрошення) вони тепер формально є членами цієї групи
  7. У меню ліворуч натисніть на Усі учасники та перевірте 4-й стовпець під назвою Доставка , у кожного члена команди повинна бути опція Усі повідомлення .
  8. Після цього я хочу подякувати пану Клементу Ескоф'є і, будь ласка, дотримуйтесь його вказівок @ Clement Escoffier :: Надіслати Github зобов’язаний до групи Google щодо того, як його закінчити. {Дякую Клименті :)}
  9. Якщо посилання стає недоступним, тут є ще одне посилання на мою версію посібника Clements gDocs @ PDF

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

встановлення гачків.шоурев не робить різниці? : - /

Приклад конф .:

# 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
HiQ CJ

Подібні проблеми із показом відрізняються тут: stackoverflow.com/questions/804601/…
HiQ CJ

1

Мені вдалося це зробити, але довелося вибрати сценарій contrib, а не інший (perl) сценарій Олександра Джулліарда. Здається, більш чудовим і налаштованим, але з постфіксом у мене не було поштової команди, яка б приймала "-s"? Ось мій шлях:

http://pastie.textmate.org/695323

Було б непогано показати ще трохи інформації, наприклад, повний патч, посилання gitweb та графік фіксації, але цей сценарій можна зробити лише першим - якщо я зіграю з гачками.

У будь-якому разі, привіт і дякую за пропозиції!



0

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


0

Якщо ви використовуєте GitLab, ви можете скористатися службою проекту "Електронна поштовх" для цього, його можна знайти в службах у налаштуваннях проекту.


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.