1

私はGitosisを使用して一連のリポジトリを管理しています。私が抱えている問題は、Gitosisが特定のコミットをプッシュしたユーザーの記録を保持していないことです。私が持っている唯一の情報は、コミット自体の「作成者」フィールドと「コミッター」フィールドであり、これらは「プッシャー」によって何にでも設定できます。

これで、1回の「プッシュ」でGitosisサーバーに多数のコミットを送信でき、それぞれが個々の開発者によって作成されたものであることがわかりました。したがって、ヘッドコミットにのみ関心があると言って制限する必要があります。プッシュされたブランチ。このコミットは(すべきです!)リリースを作成した人によって作成されたので、問題が発生した場合にそれらを打ち負かすことができるように、それが誰であるかを知りたいです。

私が持っているアイデアは、サーバーのフックを使用して、ヘッドコミットのコミッターをgitosisユーザー名と比較することです。両方が「john.doe@example.com」の場合、プッシャーはコミッターであり、プッシュは許可されます。それ以外の場合は拒否されます。それは実行可能ですか?どのフックを使用する必要がありますか?事前受信と事後受信も可能ですが、「更新」が1つだと思います。

また、受信後フックを使用してヘッドコミットにタグを付け、注釈付きタグメッセージにプッシャーのユーザー名を含めることも検討しました。これに伴う問題は、コミットを見ている人が必ずしもタグを認識していないことです。

私はこれを行う方法について他の提案を受け入れています。基本的な考え方は、どのGitosisユーザーが特定のブランチにプッシュしたかを知りたいということです。

誰がタグをプッシュしたか(またはプッシャーをタガーに制限するか)を知ることができれば、それはさらに良いでしょう!

ケビン

4

1 に答える 1

0

AFAIK gitosis では、(公開鍵認証を介して) 誰がレポへのアクセスを許可され、誰が許可されていないかを SSH に完全に任せています。そこから git-serve インスタンスまで、すべてのユーザーは「作成者」フィールドと「コミッター」フィールドのみで識別されます。

'author' フィールドと 'commiter' フィールドだけを使用することの何が問題なのですか? なりすましが心配な場合は、'development' と 'release' の 2 つのリポジトリを使用し、gitosis.conf でよりきめ細かいアクセス制御スキームを使用して、特定のキーの 'release' への書き込みアクセスのみを許可します。

于 2011-06-15T09:07:16.480 に答える