3

コードに特定の文字列が含まれている場合にユーザーに警告し、電子メールで警告したいと考えています。

サーバー側で検出を行う必要があるため、現在、受信後フックを使用しています。

サーバー側のリポジトリを更新し、git diff-tree -r --name-only --no-commit-id $2 | xargs grep foo不正な文字列「foo」を検出するようなものを実行しています。

このアプローチの問題:

  • サーバー側のリポジトリの作業バージョン全体を維持するのは好きではありません
  • 変更だけでなく、ファイル全体をスキャンします。編集上記を次のものに置き換えてこの問題を解決しました。git show $2 | grep ^+ ...

これを行うより良い方法はありますか?

4

1 に答える 1

1

gitolite V3 (または 'g3') を使用している場合は、代わりにチェックをVREFに入れてみてください。

このユーザーに適用されるルール内のVREF/ / で始まるすべての refex に対してFOO、呼び出されるプログラムへの呼び出しFOOがトリガーされます (に保存され$LOCAL_CODE/VREFます)。
VREF ルールがそのユーザーに適用されない場合、プログラムは呼び出されないことに注意してください。

この警告を適用するユーザー (のグループ) を正確に制御できます。
条件 (不正な文字列ではない) が満たされない場合は、プッシュを拒否できます。

ただし、最初に作業ディレクトリを更新する必要があります (Gitolite はデフォルトで裸のリポジトリのみを管理するため)。

于 2012-07-20T05:45:57.337 に答える