2

私は gitolite サーバーを持っており、サーバー側のフックをセットアップして、誰かがそこにあるリポジトリを複製すると、管理者に電子メールが送信されるようにしたいと考えています。現在、それはプッシュに対してのみ実行でき、クローン作成に対しては実行できないようです..私は間違っていましたか?

4

2 に答える 2

1

git clone (サーバー側)には実際にはフックがないため、可能な回避策が残されています。

「 Git アクティビティ ログはありますか? 」で説明したように、Gitolite はすべての操作のログを残します。
ただし、記録されるのは git-upload-pack インスタンスのみです。つまり、どの操作 (pull または clone) が発生したかを知らなくても、git pull または git clone について知ることができます。

その gitolite ログを監視する cron ジョブをセットアップすると、その git-upload-pack インスタンスの新しい発生を検出したときに電子メールを送信できます。

于 2013-08-12T12:06:27.547 に答える
1

git からのサーバー側フェッチ フックはありません。gitolite にはPRE_GIT、誰かがフェッチしている (実行中) ことを検出するために使用できるPOST_GIT トリガーがgit-upload-packありますが、クローンと通常のフェッチの違いは人間のセマンティクスです。

クライアントがネゴシエーションでローカル コミットを提供しない場合、クローンである可能性があるものを検出する唯一の方法は、プロトコル層の内側にあることですが、手動でフェッチを実行している誰かである可能性があります。

最後に、git は配布されているため、サーバーからクローンを作成するか、他の場所 (おそらく同僚のコンピューター/USB スティック、または同じコンピューター内の別のリポジトリ) からクローンを作成し、サーバーから残りをフェッチすることは基本的に同じです。リポジトリ間のバインディング。

于 2013-08-12T10:43:07.607 に答える