web-dev-qa-db-ja.com

リポジトリの変更時に電子メール通知を送信するGitフック

一連の変更がアップストリームリポジトリにプッシュされるたびに概要メールを送信するように適切なGitフックを設定するにはどうすればよいですか?

99
Head

これを行うためのもう1つのより現代的な方法は、以下の コード で示唆されているように、 git-multimail を使用することです。


これが2009年のやり方です。

this のようなものを$ GITDIR/hooksのpost-receiveフックに追加するか、ソースのcontribディレクトリにあるスクリプトを使用することができます (Available here)

93
mwalling

これが私が見つけた最も簡単な解決策です:

1) github.com でgitHubアカウントにログインします

2)メインタブで設定をクリックします

3)メインナビゲーションからService Hooksを選択します

4)利用可能なフックからメールを選択

5)フィールドにメールアドレスを入力しますAddress

6)チェックボックスをオンにします送信者から送信

7)チェックボックスをオンにしますActive

8)設定の更新をクリックします

オプション:Test Hookをクリックしてテストします。メールを受信する受信トレイを確認します。

プロセスに従って作成された画像もあります。

enter image description here

enter image description here

enter image description here

enter image description here

そして今、グランドファイナルについては、私の側でテストされ承認された答えがあります。

gitHubのサービスフック->電子メールで最大2人の受信者しか許可されていない場合、すべての開発チームメンバーに電子メールを送信する方法}

答えはService Hook-> Email @ GitHub && Google groupsの組み合わせです

  1. Googleアカウントへの最初のログイン
  2. Googleグループ に移動し、上部のグループの作成をクリックします
  3. グループ名、グループの電子メールアドレス(GitHubサービスフック->電子メールアドレスにコピー/貼り付けします)、グループの説明を入力します
  4. 上部の[作成]ボタンをクリックすると、新しいグループが作成されます
  5. その後、左のメニューでメンバーの招待を選択し、チームメイトのメールアドレスを入力します
  6. その後、招待状を送信(メンバーが招待状を受け入れたとき)が正式にこのグループのメンバーになります
  7. 左のメニューでAll Membersをクリックし、Deliveryと呼ばれる4番目の列を確認します。すべてのチームメンバーはオプションAll Emailを持っている必要があります。
  8. その後、私はクレジットしたいと思いますMr。 Clement Escoffierそして、彼のガイドラインに従ってください@ Clement Escoffier :: Send GithubがGoogleグループにコミットする それを完了する方法について。 {ありがとうクレメント:)}
  9. リンクが利用できなくなった場合、ここに私のgDocsへの別のリンクがあります@ ClementsガイドのPDF版
17
Matija

これは、リポジトリにプッシュするたびにユーザーに電子メール通知を送信する私の方法です。

Git Commit電子メール通知のセットアップ

Andy Parkinsのスクリプトに基づいています。メールを送信するためにSMTPを使用するように変更します。もちろん、GmailのSMTPも使用できます。

10
Eric

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 <[email protected]>
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)
5
mavam

hooks.showrevを設定しても、顕著な違いはありませんか? :-/

サンプルconf:

# less users/cj.git/config 
[core]
        repositoryformatversion = 0
        filemode = true
        bare = true
[hooks]
        mailinglist = [email protected]
        showrev = "git show -C %s; echo"
        emailprefix = "[sabu gitosis server] "
4
HiQ CJ

私はこれをなんとかすることができましたが、Alexandre Julliardによる他の(Perl)スクリプトではなく、contribスクリプトの使用を選択する必要がありました。もっと派手で設定しやすいように見えますが、接尾辞には「-s」を受け入れるメールコマンドがありませんか?私の方法は次のとおりです。

http://pastie.textmate.org/69532

完全なパッチ、gitwebリンク、コミットグラフなどの詳細情報を表示するのは良いことですが、このスクリプトは最初にしか実行できません-hooks.showrevで遊んでいるようです。

とにかく、乾杯と提案をありがとう!

1
HiQ CJ

Github固有であるため完全な答えではありませんが、Githubを使用する場合は「サービスフック」を非常に簡単に構成できます。
監視するリポジトリごとに、設定/サービスフックを入力します。
Trac、Twitter、Amazon SNS、Jira、Asana、Bugzilla、FogBugz、IRC、Jabber、Pivo​​tal Tracker、Trello、Emailなど、利用可能な統合が多数あります。
メールを選択して、グループのメールアドレスを入力してください。
電子メール通知を使用して、開発者を同期します。

0
Tal Weiss

GitLabを使用している場合、「Email-on-Push」プロジェクトサービスを使用できます。プロジェクト設定のサービスの下にあります。

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
tomaszbak

ウィンドウを使用する場合、 scm-notifier が役立ちます。

0
pocorall