Depo değişikliklerinde e-posta bildirimi göndermek için Git kanca


101

Yukarı akış havuzuna bir dizi değişiklik gönderildiğinde bir özet e-posta göndermek için uygun Git kancasını nasıl yapılandırabilirim?


Herhangi Git sürüm güncellemesi (yeni etiket) için kullanabileceğiniz Repo git-notifier.com Eposta bildirimleri (ücretsiz) veya SMS bildirimleri göndermek için (Ücretli)
Scholtz

Yanıtlar:


94

Bunu yapmanın bir başka, daha modern yolu , aşağıdaki Akorlar tarafından önerildiği gibi git-multimail'dir .


2009'da böyle yaptın.

Sen gibi bir şey ekleyebilirsiniz bu $ GITDIR / kancalarla kancaya-alma sonrası sizin için veya kaynağı contrib dizininde komut dosyasını kullanmak (burada kullanılabilir)


Bu betiğe kancalarımda başvurursam, başvurulan komut dosyasının yukarı akış ana bilgisayarında mı yoksa yerel olarak mı bulunması gerekir?
Head

4
Kancayı yürüten ana bilgisayar, yani bir sonradan alma durumunda, yukarı akış ana bilgisayarı (oysa bir son-tamamlama kancası, işlemi çalıştırdığınız ana bilgisayarda komut dosyasına ihtiyaç duyar).
mwalling

2
Ahhh, ama cevabı kabul edebilirsin ve ikiniz de daha fazla itibar kazanırsınız!
Pat Notz

Beni yakalayan kısım alıcılar listesini oluşturmaktı. Sonunda git config: git config hooks.mailinglist "person1@example.com, person2@example.com" kullanmanız gerektiğini anladım
ewalk

4
Bu yanıttaki bağlantının artık aktif geliştirme aşamasında olmadığını belirtmekte fayda var. Bunun yerine, benioku dosyasında belirtilen çoklu postayı kullanın .
Akorlar

19

İşte bulduğum en basit çözüm:

1) gitHub hesabınızda oturum açın github.com'da gitHub açın

2) Ana sekmede tıklayın Ayarlar'a

3) Ana navigasyondan seçin Servis Kancalarını

4) Kullanılabilir Kancalardan E-posta'yı seçin

5) Alana e-posta adresinizi girin Adres

6) Onay kutusunu işaretleyin Gönder

7) Onay kutusunu işaretleyin Etkin

8) tıklayın Ayarları Güncelle'ye

İsteğe bağlı: Test Kancasına tıklayabilirsiniz e-posta almanız gereken gelen kutunuzu kontrol edebilirsiniz.

Ayrıca sürece göre yapılmış görüntüler de var:

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin

Ve şimdi büyük final için yanımda test edilen ve onaylanan cevabım var.

GitHub'ın Servis Kancaları-> E-posta yalnızca en fazla 2 alıcıya izin verdiğinde TÜM geliştirme ekibi üyelerine nasıl e-posta gönderilir} .

Cevap kombinasyonudur Service Hook-> Email @ GitHub && Google gruplarının

  1. Google hesabınıza ilk giriş yapın
  2. Git Google Gruplar ve üstündeki tıklayın Grup Oluştur
  3. Grup Adı, Grup e-posta adresi (GitHub Servis Kancasına kopyalayıp yapıştıracak -> E-posta Adresi), Grup açıklamasını yazın
  4. Üstteki Oluştur düğmesine bastıktan sonra, yeni grubunuz şimdi oluşturulmalıdır.
  5. Bundan sonra soldaki menüde Üyeleri davet et'e tıklayın ve takım arkadaşlarınızın e-posta adreslerini yazın.
  6. Bundan sonra Davet gönder düğmesine basın (üyeleriniz daveti kabul ettiğinde) artık resmi olarak bu grubun üyesidirler
  7. Soldaki menüde Tüm Üyeler'e tıklayın ve Teslimat adlı 4. sütunu işaretleyin , her ekip üyesinin Tüm E-posta seçeneği olmalıdır .
  8. Bundan sonra Sayın Clement Escoffier'e teşekkür etmek istiyorum ve lütfen @ Clement Escoffier'deki yönergelerine uyun :: Github taahhütlerini bir Google Grubuna gönderin nasıl bitireceğine dair gönderin. {Teşekkürler Clement :)}
  9. Bağlantı kullanılamaz hale gelirse, burada Clements kılavuzumun gDocs @ PDF sürümüne başka bir bağlantı var

19
Bu bir github çözümüdür. Sorudaki hiçbir şey bana kullanıcının github kullandığını söylemiyor. Yine de github'daki bir soru için mükemmel bir cevap gibi görünüyor.
daramarak

3
Bu e-posta hizmeti Ekim 2018'den sonra kullanımdan kaldırılacak. Yani bu yanıt o noktadan sonra geçerli olmayacak. developer.github.com/changes/…
Jeegar Patel

10

Bu, birisi arşive her itişinde kullanıcılara e-posta bildirimi gönderme yöntemimdir.

Git Kaydetme E-posta Bildirimini Ayarlama

Andy Parkins'in senaryolarına dayanıyor. E-posta göndermek için kullanılan SMTP olarak değiştirdim. Elbette gmail'in SMTP'si de kullanılabilir.


5

Robin Sommer'ın 'ın git-notifier da aşağıdaki biçimde çok güzel özetleri oluşturur:

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, ayırt edilebilir bir fark yaratmıyor mu? : - /

Örnek yapılandırma:

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

Ah, git.kernel.org sürümüne hooks.showrev saygı duyuldu, ancak varsayılan git kurulum betiği yoktu! Sadece betiği değiştirdim, chmod a + x ve sonra çalışıyor! Yine de showrev sözdizimini anlamanız gerekiyor
HiQ CJ

Farklılıkları burada göstermeyle ilgili benzer sorunlar: stackoverflow.com/questions/804601/…
HiQ CJ

1

Bunu yapmayı başardım, ancak Alexandre Julliard'ın diğer (perl) betiğini değil, katkıda bulunan betiği kullanmayı seçmek zorunda kaldım. Daha süslü ve daha yapılandırılabilir görünüyor, ancak postfix ile "-s" yi kabul edecek bir posta komutum yoktu? İşte benim yolum:

http://pastie.textmate.org/695323

Tam yama, gitweb bağlantısı ve commit grafiği gibi biraz daha fazla bilgi göstermek güzel olurdu, ancak bu betik yalnızca ilkini yapabilir - eğer hooks.showrev ile oynarsam öyle görünüyor.

Her neyse, önerileriniz için teşekkürler ve teşekkürler!



0

Github'a özgü olduğu için tam bir cevap değil, ancak Github kullanıyorsanız, "Servis Kancalarını" yapılandırmak son derece kolaydır.
İzlemek istediğiniz her depo için Ayarlar / Hizmet Kancaları'na girin.
Trac, Twitter, Amazon SNS, Jira, Asana, Bugzilla, FogBugz, IRC, Jabber, Pivotal Tracker, Trello ve E-posta gibi pek çok kullanılabilir entegrasyon vardır ...
Sadece e-postayı seçin ve bir grup e-posta adresiyle besleyin.
Geliştiricilerimizi senkronize etmek için e-posta bildirimlerini kullanıyoruz.


0

GitLab kullanıyorsanız, bunun için 'E-posta gönder' proje hizmetini kullanabilirsiniz, proje ayarlarında hizmetler altında bulunabilir.


0

Ön işleme kullanabilirsiniz:

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

Yüklemek:

cd project
cp pre-commit .git/hooks
chmod +x .git/hooks/pre-commit
gem install mail

Ölçek:

echo "# some change" >> Gemfile && git commit -m 'some change' Gemfile

0

In GitLab sizin depo altında:

  1. Ayar'a tıklayın.
  2. Orada ayar genişlediğinde Entegrasyonları göreceksiniz . Üstüne tıkla.

Yeni bir sayfa açılır Push'ta e-postalar

  1. Bulup seçmek committer gelen Gönder .
  2. Ayrıca, alıcıları son alanda virgülle ayrılmış olarak girin .

Ayrıca, kod farklılıklarını devre dışı bırakma seçeneği de vardır , bildirim gövdesinde olası hassas kod farklılıklarını hariç tutan dışı . İsteğe bağlıdır.

Daha fazla ayrıntı için: Buraya Tıklayın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.