2

要約すると、私の質問は次のとおりです。gitlab で新しく作成されたすべてのリポジトリに、選択したいくつかのファイル (フック スクリプト) を含むデフォルトの初期コミットがあることを確認するにはどうすればよいですか?

いくつかの背景: 私の会社は、内部開発のために git と gitlab (svn から離れて - 万歳!) の使用に切り替えています。

ユーザーが gitlab で新しいレポを作成すると、その新しいレポに、選択したいくつかのファイルが自動入力されるようにしたいと考えています。これらのファイルは、フック スクリプトとそれらをインストールするスクリプトになります。そうすれば、ユーザーが作成したばかりのレポを複製すると、そこには既にフック スクリプトが含まれており (これにより、会社のコミット メッセージ ポリシーが適用されます)、インストールすることができます。

これで、gitlab を使用すると、新しいリポジトリが作成されたときに (特に) 呼び出される CGI スクリプトへの URL を指定できることがわかりました。私の考えは、適切な初期コミットを含む「スケルトン」リポジトリをどこかに置き、この cgi スクリプトをそのリポジトリから新しく作成されたリポジトリにプッシュするようにすることです。

この計画の問題はパーミッションの 1 つです。この cgi スクリプトは、デフォルトですべての新しいリポジトリで、新しいリポジトリへのコミット アクセス権を持つ ssh キーが設定されているユーザーとして実行する必要があります。

新しく作成されたすべてのリポジトリが、gitlab の特定のユーザーによって書き込みアクセス可能であることを確認する方法はありますか?

新しく作成されたすべてのリポジトリが指定された初期コミットを確実に取得する別の方法はありますか?

私が考えもしなかったこれらのフック スクリプトの配布を確実にするより良い方法はありますか?

4

1 に答える 1

1

以前にも同様の問題があり、誰もがアクセスできる専用のフック リポジトリを作成することで解決しました。新しいリポジトリを作成した後、ユーザーはこのフック リポジトリでスクリプトを実行することになっていました。このスクリプトは、新しいリポジトリの .git/hooks ディレクトリから、すべてのフックが保存されているフック リポジトリへのシンボリック リンクを作成するだけです。このようにして、ユーザーはフック リポジトリの新しいバージョンをプルするだけで、すべてのフックを更新することもできます。関連する質問は次のとおりです: Gitolite: print message after git clone finished

このアプローチの唯一の問題: ユーザーは、新しいリポジトリを作成するたびにフック スクリプトを実行する必要があります。

于 2013-03-20T07:54:23.357 に答える