ฉันจะกำหนดค่า Git hook ที่เหมาะสมเพื่อส่งอีเมลสรุปได้อย่างไรเมื่อใดก็ตามที่มีการพุชชุดการเปลี่ยนแปลงไปยังที่เก็บอัพสตรีม
ฉันจะกำหนดค่า Git hook ที่เหมาะสมเพื่อส่งอีเมลสรุปได้อย่างไรเมื่อใดก็ตามที่มีการพุชชุดการเปลี่ยนแปลงไปยังที่เก็บอัพสตรีม
คำตอบ:
อีกวิธีหนึ่งที่ทันสมัยกว่านี้คือการใช้git-multimailตามที่Chordsแนะนำด้านล่าง
นี่คือวิธีที่คุณทำได้ในปี 2009
คุณสามารถเพิ่มสิ่งนี้ลงในเบ็ดหลังการรับของคุณใน $ GITDIR / hooks หรือใช้สคริปต์ในไดเร็กทอรี Contrib ของซอร์ส(มีให้ที่นี่)
นี่คือวิธีแก้ปัญหาที่ง่ายที่สุดที่ฉันพบ:
1) ลงชื่อเข้าใช้บัญชี gitHub ของคุณบนgithub.com
2) ในแท็บหลักคลิกที่การตั้งค่า
3) จากการนำทางหลักให้เลือกService Hooks
4) จากตะขอที่มีให้เลือกอีเมล
5) กรอกที่อยู่อีเมลของคุณในฟิลด์ที่อยู่
6) เลือกช่องทำเครื่องหมายส่งจากผู้เขียน
7) เลือกช่องทำเครื่องหมายใช้งานอยู่
8) คลิกที่Update Settings
ไม่บังคับ: คุณสามารถคลิกที่Test Hookเพื่อทำการทดสอบตรวจสอบกล่องจดหมายของคุณว่าคุณควรได้รับอีเมล
นอกจากนี้ยังมีภาพที่สร้างขึ้นตามกระบวนการ:
และตอนนี้สำหรับรอบชิงชนะเลิศที่ยิ่งใหญ่ฉันมีคำตอบซึ่งผ่านการทดสอบและรับรองอยู่เคียงข้างฉัน
วิธีส่งอีเมลถึงสมาชิกในทีมพัฒนาทั้งหมดเมื่อ Service Hooks-> Email ของ gitHub อนุญาตให้มีผู้รับสูงสุด 2 คนเท่านั้น}
คำตอบคือการรวมกันของService Hook-> Email @ GitHub && Google groups
นี่เป็นวิธีการส่งอีเมลแจ้งเตือนไปยังผู้ใช้ทุกครั้งที่มีคนกดไปที่ที่เก็บ
การตั้งค่า Git Commit Email Notification
มันขึ้นอยู่กับสคริปต์ของ Andy Parkins ฉันเปลี่ยนเป็น SMTP ที่ใช้ในการส่งอีเมล แน่นอนว่าสามารถใช้ SMTP ของ gmail ได้ด้วย
ตัวแจ้งเตือนคอมไพล์ของRobin 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)
การตั้งค่า hooks.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] "
ฉันจัดการเพื่อทำสิ่งนี้ แต่ต้องเลือกใช้สคริปต์ที่มีส่วนร่วมไม่ใช่สคริปต์ (perl) อื่น ๆ โดย Alexandre Julliard ดูเหมือนว่าน่าสนใจและกำหนดค่าได้มากกว่า แต่ด้วย postfix ฉันไม่มีคำสั่งเมลที่จะยอมรับ "-s"? นี่คือวิธีของฉัน:
http://pastie.textmate.org/695323
มันจะเป็นการดีที่จะแสดงข้อมูลเพิ่มเติมเช่นแพทช์เต็มลิงก์ gitweb และกราฟคอมมิตด้วยเช่นกัน แต่สคริปต์นี้ทำได้เฉพาะครั้งแรกเท่านั้น - ถ้าฉันเล่นกับ hooks แสดงว่าดูเหมือนว่า
ยังไงก็เชียร์และขอบคุณสำหรับคำแนะนำ!
หากคุณใช้ windows scm-notifierจะเป็นประโยชน์
ไม่ใช่คำตอบที่สมบูรณ์เนื่องจากเป็น Github โดยเฉพาะ แต่ถ้าคุณบังเอิญใช้ Github การกำหนดค่า "Service Hooks" นั้นง่ายมาก
สำหรับแต่ละที่เก็บที่คุณต้องการตรวจสอบให้ป้อนการตั้งค่า / Service Hooks
มีการผสานรวมที่พร้อมใช้งานมากมายเช่น Trac, Twitter, Amazon SNS, Jira, Asana, Bugzilla, FogBugz, IRC, Jabber, Pivotal Tracker, Trello และ Email ....
เพียงแค่เลือกอีเมลและป้อนด้วยที่อยู่อีเมลกลุ่ม
เราใช้การแจ้งเตือนทางอีเมลเพื่อซิงค์นักพัฒนาของเรา
หากคุณใช้ GitLab คุณสามารถใช้บริการโปรเจ็กต์ 'Email-on-push' สำหรับสิ่งนี้สามารถพบได้ในบริการในการตั้งค่าโปรเจ็กต์
คุณสามารถใช้การกระทำล่วงหน้า:
#!/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
ในGitLabภายใต้ที่เก็บของคุณ:
มีการเปิดหน้าใหม่อีเมลเมื่อผลักดัน
นอกจากนี้ยังมีตัวเลือกสำหรับปิดการใช้งานรหัสที่แตกต่างซึ่งยกเว้นรหัสที่ละเอียดอ่อนที่อาจแตกต่างกันในเนื้อหาการแจ้งเตือน เป็นทางเลือก
รายละเอียดเพิ่มเติม: คลิกที่นี่