Programming

저장소 변경에 대한 이메일 알림을 보내는 Git 후크

procodes 2020. 8. 20. 20:40
반응형

저장소 변경에 대한 이메일 알림을 보내는 Git 후크


일련의 변경 사항이 업스트림 저장소로 푸시 될 때마다 요약 이메일을 보내도록 적절한 Git 후크를 구성하려면 어떻게해야합니까?


이 작업을 수행하는 또 다른 현대적인 방법은 아래 Chords에서 제안한 것처럼 git-multimail 을 사용하는 것 입니다.


이것이 2009 년에 당신이 한 방법입니다.

당신은 같은 것을 추가 할 수 있습니다 $ GITDIR / 훅 훅 - 수신 후 당신에게, 또는 소스의 contrib 디렉토리에있는 스크립트를 사용하여 (여기서 가능)


내가 찾은 가장 간단한 해결책은 다음과 같습니다.

1) github.com에서 gitHub 계정에 로그인합니다.

2) 기본 탭에서 설정을 클릭하십시오.

3) 기본 탐색에서 서비스 후크를 선택하십시오.

4) 사용 가능한 후크에서 이메일 선택

5) 필드에 이메일 주소를 입력 주소

6) 작성자로부터 보내기 확인란을 선택합니다.

7) 체크 박스 활성화

8) 업데이트 설정을 클릭하십시오

선택 사항 : 테스트를 위해 테스트 후크클릭하고 이메일을 받아야하는받은 편지함을 확인할 수 있습니다.

또한 프로세스에 따라 만들어진 이미지가 있습니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력

그리고 이제 결승전을 위해 제 측에서 테스트되고 승인 된 답을 얻었습니다.

gitHub의 Service Hooks-> Email이 최대 2 명의 수신자 만 허용 할 때 모든 개발 팀원에게 이메일을 보내는 방법} .

대답은 Service Hook-> Email @ GitHub && Google 그룹의 조합입니다.

  1. Google 계정에 처음 로그인
  2. Google 그룹스로 이동 하여 상단에서 그룹 만들기를 클릭합니다.
  3. 그룹 이름, 그룹 이메일 주소 (GitHub 서비스 후크-> 이메일 주소에 복사 / 붙여 넣기), 그룹 설명을 입력합니다.
  4. 상단의 만들기 버튼을 클릭하면 이제 새 그룹이 생성됩니다.
  5. 그 후 왼쪽 메뉴에서 구성원 초대를 누르고 팀 동료의 이메일 주소를 입력하십시오.
  6. 그 히트 후 보내기 초대 (당신의 회원이 초대를 수락 할 때) 그들은 지금이 그룹의 정식 회원입니다
  7. 왼쪽 메뉴에서 모든 구성원을 클릭하고 배달 이라는 네 번째 열 을 선택하면 모든 팀 구성원이 모든 이메일 옵션을 가지고 있어야합니다 .
  8. 그 후 Clement Escoffier 씨에게 감사를 표 하고 그의 가이드 라인을 따르십시오 @ Clement Escoffier :: Send Github는 완료 방법에 대해 Google 그룹커밋 합니다. {클레멘트 감사합니다 :)}
  9. 여기에서 링크를 사용할 수 없게되면 내 gDocs @ PDF 버전의 Clements 가이드에 대한 또 다른 링크가 있습니다.

이것은 저장소로 푸시 할 때마다 사용자에게 이메일 알림을 보내는 방법입니다.

Git 커밋 이메일 알림 설정

Andy Parkins의 스크립트를 기반으로합니다. 이메일을 보내는 데 사용되는 SMTP로 변경합니다. 물론 Gmail의 SMTP도 사용할 수 있습니다.


Robin Sommergit-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)

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

I managed to do this, but had to opt for using the contrib script, not the other (perl) script by Alexandre Julliard. It seems fancier and more configurable, but with postfix I had no mail command which would accept "-s"? Here's my way:

http://pastie.textmate.org/695323

It would be nice to show some more info, like the full patch, gitweb link and commit graph as well, but this script can only do the first - if I play around with hooks.showrev it seems.

Anyway, cheers and thanks for the suggestions!


If you use windows, scm-notifier would be helpful.


Not exactly a full answer since it is Github-specific, but if you happen to use Github it is extremely easy to configure "Service Hooks".
For each repository you wish to monitor, enter Settings / Service Hooks.
There are plenty of available integrations, such as Trac, Twitter, Amazon SNS, Jira, Asana, Bugzilla, FogBugz, IRC, Jabber, Pivotal Tracker, Trello and Email....
Simply select email and feed it with a group email address.
We use the email notifications to sync our developers.


If you use GitLab you can use the 'Email-on-push' project service for this, it can be found under services in project settings.


You can use 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

Install:

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

Test:

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

참고URL : https://stackoverflow.com/questions/552360/git-hook-to-send-email-notification-on-repo-changes

반응형