2

Gitblit には pre-receive フックがあり、不要なコミットがサーバーにプッシュされるのを防ぎます。フック ロジックでは、誤検知が発生することがあります。完全に正確にするのは本当に難しいです。フックを無視する修正版のプッシュ コマンドを何らかの方法で実行できるようにしたいと考えています。

単純に発行してみgit push --forceましたが、うまくいきません。フックは無視されません。

git pushGitblit Groovy スクリプトにカスタム パラメータを追加して解析する方法はありますか?

何かのようなもの

git push origin --ignoreOurCustomHook

そしてスクリプトで

if(someObject.getParameter('ignoreOurCustomHook') != null)
{
  break
}

JGitのドキュメントを掘り下げても、これまでのところ何も役に立ちません。おそらくreceivePacket.pckIn、コマンド全体を手動で解析するために使用できますが、それは非常にハードコアであり、パケットを読み取ろうとした最初の試みで単にクラッシュしました.

調べるべきことについての提案は大歓迎です。

4

2 に答える 2

2

デバッガーで少し実験する必要がありますが、必要に応じてプッシュ引数を送信することができます。それらを Groovy フック メカニズムに到達させるのは難しい場合があります。またはそうでないかもしれません。私はそれを見ていません。

git push --receive-pack='git receive-pack --ignoreOurCustomHook' origin master

何かが機能したら、カスタムリモートをセットアップして、これをよりきれいに処理できるようにする必要があります。

$ cat .git/config
...
[remote "ignoreHook"]
  url = https://somewhere.com/r/myrepo.git
  receivepack = git receive-pack --ignoreCustomHook

$ git push ignoreHook master
于 2015-01-26T16:09:46.770 に答える