5

RESTful インターフェイスを使用して、特定のタスクに関連付けられたコミットの gitweb へのリンクを添付することにより、リモート git リポジトリを RTC サーバーと統合したいと考えています。

理想的には、これは git サーバーの post-receive フックで行われますが、git が実行される処理ユーザーは、ユーザー アカウントが RTC に対して認証することを許可されていません。

私が考えることができる最善の解決策は、何らかの方法で認証トークン (cookies.txt の形式で RTC から取得) を git push と共に渡すことです (ただし、それをコミットの一部にしないでください)。

別の方法として、各クライアント リポジトリにポスト プッシュ フックがありますが、それには独自の問題があります (そのようなフックがないことも含めて)。

4

1 に答える 1

6

git バージョン 2.10 以降ではgit --push-option <string>、指定された文字列値をサーバーに渡すために使用できます。サーバーはそれらを pre-receive フックと post-receive フックに渡します。git push ドキュメント.

git push --push-option=... のコマンド ラインで指定されたプッシュ オプションの数は、環境変数 GIT_PUSH_OPTION_COUNT から読み取ることができ、オプション自体は GIT_PUSH_OPTION_0、GIT_PUSH_OPTION_1、… で見つかります。プッシュ オプション フェーズを使用すると、環境変数は設定されません。クライアントがプッシュ オプションの使用を選択しても送信しない場合、count 変数はゼロ (GIT_PUSH_OPTION_COUNT=0) に設定されます。git フックのドキュメント

于 2017-01-24T21:40:29.817 に答える