3

Gitosis は、公開鍵と秘密鍵のペアに基づいてユーザーを認証できます。現在コミットしているユーザーを見つけることができます。ただし、ユーザー名と電子メールはクライアントの Git 構成 ('git config user.name' など) から取得され、任意の値に設定できます。ユーザー名と電子メールを公開鍵に関連付けて、Gitosis がこれらの名前と電子メールをコミッターの名前と電子メールとして使用するようにする方法はありますか?

リポジトリを共有するために Gitosis や WebDAV などの代替手段を使用するかどうかは気にしません。利用可能な方法のどれも、ある種の「正しい」ユーザー名と電子メールを使用するこの強制をサポートしていないように思えます。代替案があれば教えてください。

4

2 に答える 2

1

Git ソースのupdate-paranoidフックの例は、次のチェックを行います。

すべての新しいコミットまたはタグ オブジェクトでは、オブジェクト内のコミッター (またはタガー) 行が、acl ファイルにリストされている user.committer 値の 1 つと正確に一致する必要があります。

同様のチェックを行うようにGitosisまたはGitoliteを構成するupateか、独自のpre-receiveフックを作成することができると思います。これらすべてのケースで、Git を使用できる「スマート」トランスポートを介してプッシュを行う必要があります。これは、SSH 経由、または「スマート」HTTP ( git-http-backend ) 経由でプッシュすることを意味します。WebDAV (「ダム」HTTP(S)) 経由のプッシュは除外されます。

電子メールで送信されたパッチ (適用する前に確認する必要があるのはコミッターです)、またはチェリーピッキングまたはリベースから送信される可能性があるため、コミットの作成者を確認することは意味がないことに注意してください。

于 2010-04-18T10:51:53.717 に答える