git push でリポジトリが更新されたときに、commitの内容をメールで送信する方法。
ディストリビューションにもよるが、メール送信スクリプトは
/usr/share/git-core/contrib/hooks/post-receive-email
に普通インストールされていると思うので、これをそのまま使うこととする。
送信には sendmail を使用しているので、まずは sendmail ができるようにならないといけない。
MTA の設定はあまり詳しくないが、、、
とりあえずUbuntu でやってみた。
$ sudo apt-get install postfix
でインストール。
途中で選択肢が出てくるので、「インターネットサイト」を選択。
自宅のマシン場合、特に設定なしでも、そのまま使えた。
以下でちゃんとメールが届けばOK。
$ sendmail my.address@gmail.com
To: my.address@gmail.com
From: my.address@gmail.com
Subject: test
test
.
会社の場合、ファイアウォールの問題で、このままだと配送できなかったので、relayhostを設定。
/etc/postfix/main.cf を編集し、
relayhost のところに中継サーバーのIPアドレスを指定する。
IPアドレスで指定しないといけないみたいなので、
会社からこれを使え、と言われているSMTPサーバ名から nslookup で引く。
$ nslookup my.office.smtp.server
で Address : xxx.yyy.zzz.www
みたいにIPアドレスが返ってくるので、
relayhost = xxx.yyy.zzz.www
と指定するとOK。
sendmail が動くようになったので、続いて git の設定。
/usr/share/git-core/contrib/hooks/post-receive-email
にやり方が全部書いてあるので、この通りやるだけですが。。
post-receive-email に実行権限を与える
$ sudo chmod a+x /usr/share/git-core/contrib/hooks/post-receive-email
設定したいgit リポジトリへ移動
$ cd /my/git/repogitory.git/hooks
post-receive-email へ post-receive という名前でシンボリックリンクをはる。
$ ln -s /usr/share/git-core/contrib/hooks/post-receive-email post-receive
送りつけたい宛先を config に設定
$ git config hooks.mailinglist "address@you.want.to.send"
とりあえずこれで送信されます。
あと、お好みでやっておく設定
メールのタイトルが 「UNNAMED PROJECT」になっているので、description にプロジェクト名を記載。
送信元アドレス指定
$ git config hooks.envelopesender do_not_reply_this@foo.org
メール最大行数を指定
$ git config hooks.emailmaxlines 500
0 件のコメント:
コメントを投稿