Git hook do wysyłania powiadomień e-mail o zmianach repozytorium
101
Jak skonfigurować odpowiedni punkt zaczepienia Git, aby wysyłał podsumowanie wiadomości e-mail za każdym razem, gdy zestaw zmian jest wysyłany do repozytorium głównego?
Aby zaktualizować wersję (nowa etykieta) dla dowolnego repozytorium git, możesz użyć git-notifier.com do wysyłania powiadomień e-mail (bezpłatnie) lub powiadomień SMS (płatnych)
Jeśli odwołuję się do tego skryptu w moich hookach, czy skrypt, do którego się odwołujemy, musi znajdować się na hoście nadrzędnym, czy lokalnie?
Head
4
Host, który wykonuje przechwytywanie, więc w przypadku odbioru po odbiorze, host nadrzędny (podczas gdy przechwytywanie po zatwierdzeniu wymagałoby skryptu na hoście, na którym uruchamiasz zatwierdzenie).
mwalling
2
Ahhh, ale możesz zaakceptować odpowiedź, a oboje zdobędziecie więcej reputacji!
Pat Notz
Część, która mnie złapała, to ustawienie listy odbiorców. W końcu doszedłem do wniosku, że musisz użyć konfiguracji git: git config hooks.mailinglist „[email protected], [email protected]”
ewalk
4
Warto zauważyć, że link w tej odpowiedzi nie jest już aktywnie rozwijany. Zamiast tego użyj multimail , o którym mowa w pliku Readme.
Wpisz nazwę grupy, adres e-mail grupy (skopiuje / wklei do GitHub Service Hook-> Email Address), Opis grupy
Po tym naciśnij przycisk Utwórz u góry, twoja nowa grupa powinna zostać utworzona teraz
Następnie w menu po lewej stronie naciśnij Zaproś członków i wpisz adresy e-mail kolegów z drużyny
Następnie naciśnij Wyślij zaproszenia (gdy Twoi członkowie przyjmą zaproszenie) są teraz formalnie członkami tej grupy
W menu po lewej stronie kliknij Wszyscy członkowie i zaznacz czwartą kolumnę o nazwie Dostawa , każdy członek zespołu powinien mieć opcję
Wszystkie e-maile .
To jest rozwiązanie na githubie. Nic w pytaniu nie mówi mi, że użytkownik korzysta z github. Wygląda jednak na to, że jest to doskonała odpowiedź na pytanie na githubie.
daramarak
3
Ta usługa e-mail zostanie wyłączona po październiku 2018 r. Więc ta odpowiedź nie jest ważna po tym momencie. developer.github.com/changes/…
Jeegar Patel,
10
To jest mój sposób na wysyłanie powiadomień e-mail do użytkowników za każdym razem, gdy ktoś wrzuci do repozytorium.
Ach, okazuje się, że wersja git.kernel.org szanowała hooks.showrev, ale domyślny skrypt instalacyjny gita nie! Po prostu zastąpiłem skrypt, chmod a + x i już działa! Nadal jednak muszę zrozumieć składnię showrev
Udało mi się to zrobić, ale musiałem zdecydować się na użycie skryptu Contrib, a nie innego skryptu (perl) autorstwa Alexandre Julliard. Wydaje się bardziej wyszukany i bardziej konfigurowalny, ale z postfixem nie miałem polecenia poczty, które zaakceptowałoby "-s"? Oto moja droga:
Byłoby miło pokazać trochę więcej informacji, takich jak pełna łatka, link do gitweb i wykres zatwierdzeń, ale ten skrypt może zrobić tylko pierwszy - jeśli będę bawić się hooks.showrev, jak się wydaje.
Nie jest to do końca pełna odpowiedź, ponieważ jest ona specyficzna dla Github, ale jeśli zdarzy ci się używać Githuba, niezwykle łatwo jest skonfigurować „Service hooki”.
Dla każdego repozytorium, które chcesz monitorować, wprowadź Ustawienia / Haki serwisowe.
Dostępnych jest wiele integracji, takich jak Trac, Twitter, Amazon SNS, Jira, Asana, Bugzilla, FogBugz, IRC, Jabber, Pivotal Tracker, Trello i Email ...
Po prostu wybierz e-mail i podaj grupowy adres e-mail.
Używamy powiadomień e-mail do synchronizacji naszych programistów.
#!/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
Zainstalować:
cd project
cp pre-commit .git/hooks
chmod +x .git/hooks/pre-commit
gem install mail
Odpowiedzi:
Innym, nowocześniejszym sposobem na to jest użycie git-multimail , jak sugerują poniższe Chords .
Tak to zrobiłeś w 2009 roku.
Można dodać coś jak to do Twojego postu, otrzymasz hak w $ GITDIR / haczyki lub użyć skryptu w katalogu contrib źródła (dostępne tutaj)
źródło
Oto najprostsze rozwiązanie, jakie znalazłem:
1) Zaloguj się na swoje konto gitHub na github.com
2) W zakładce głównej kliknij Ustawienia
3) Z głównej nawigacji wybierz Service Hooks
4) Z dostępnych haków wybierz Email
5) Wpisz swój adres e-mail w polu Adres
6) Zaznacz pole wyboru Wyślij od autora
7) Zaznacz pole wyboru Aktywne
8) Kliknij Ustawienia aktualizacji
Opcjonalnie: Możesz kliknąć Test Hook do testowania, sprawdź swoją skrzynkę odbiorczą, do której powinieneś otrzymać e-mail.
Istnieją również obrazy wykonane zgodnie z procesem:
A teraz, na wielki finał , mam odpowiedź, która została przetestowana i zatwierdzona po mojej stronie.
Jak wysłać wiadomość e-mail do WSZYSTKICH członków zespołu programistów, gdy haki serwisowe gitHub-> e-mail dopuszczają maksymalnie 2 odbiorców} .
Odpowiedzią jest połączenie Service Hook-> Email @ GitHub && Google Groups
źródło
To jest mój sposób na wysyłanie powiadomień e-mail do użytkowników za każdym razem, gdy ktoś wrzuci do repozytorium.
Konfigurowanie powiadomienia e-mail o zatwierdzeniu przez Git
Jest oparty na scenariuszach Andy'ego Parkinsa. Zmieniam to na używany SMTP do wysyłania wiadomości e-mail. Oczywiście można również użyć SMTP Gmaila.
źródło
Robin Sommera dydaktycznego git-zgłaszający generuje również bardzo ładne streszczenia w następującym formacie:
źródło
ustawienie hooks.showrev nie robi żadnej zauważalnej różnicy? : - /
Przykładowe konf:
źródło
Udało mi się to zrobić, ale musiałem zdecydować się na użycie skryptu Contrib, a nie innego skryptu (perl) autorstwa Alexandre Julliard. Wydaje się bardziej wyszukany i bardziej konfigurowalny, ale z postfixem nie miałem polecenia poczty, które zaakceptowałoby "-s"? Oto moja droga:
http://pastie.textmate.org/695323
Byłoby miło pokazać trochę więcej informacji, takich jak pełna łatka, link do gitweb i wykres zatwierdzeń, ale ten skrypt może zrobić tylko pierwszy - jeśli będę bawić się hooks.showrev, jak się wydaje.
W każdym razie okrzyki i dzięki za sugestie!
źródło
Jeśli korzystasz z systemu Windows, pomocny byłby scm-notifier .
źródło
Nie jest to do końca pełna odpowiedź, ponieważ jest ona specyficzna dla Github, ale jeśli zdarzy ci się używać Githuba, niezwykle łatwo jest skonfigurować „Service hooki”.
Dla każdego repozytorium, które chcesz monitorować, wprowadź Ustawienia / Haki serwisowe.
Dostępnych jest wiele integracji, takich jak Trac, Twitter, Amazon SNS, Jira, Asana, Bugzilla, FogBugz, IRC, Jabber, Pivotal Tracker, Trello i Email ...
Po prostu wybierz e-mail i podaj grupowy adres e-mail.
Używamy powiadomień e-mail do synchronizacji naszych programistów.
źródło
Jeśli korzystasz z GitLab, możesz w tym celu skorzystać z usługi projektu „Email-on-push”, którą można znaleźć w usługach w ustawieniach projektu.
źródło
Możesz użyć pre-commit:
Zainstalować:
Test:
źródło
W GitLab pod Twoim repozytorium:
Otwiera się nowa strona E-maile w trybie push
Istnieje również opcja Wyłącz różnice w kodzie, które wykluczają potencjalnie wrażliwe różnice w kodzie w treści powiadomienia. Jest to opcjonalne.
Aby uzyskać więcej informacji: Kliknij tutaj
źródło