4

最初は1人の開発者だけでgitサーバーを実装しようとしているので、完全にアクセスできるのは1人だけです。私はすでにこれを行うことに問題はありません。このユーザーは、ssh アクセスで作業を行っています。

そして、プロジェクトへの読み取り専用アクセスを、Apacheで実行されているある種のGUI(gitweb、gitlist、gitalist ...)と共有したいと思います。これにより、選択したリポジトリを特定のユーザーや完全に公開することができます。何かのようなもの:

  • Repo x - user1 と user3 の読み取りアクセス
  • Repo y - user1 と user2 の読み取りアクセス
  • Repo z - すべてのユーザーの読み取りアクセス。

このようなことを行うための適切な解決策を見つけることができません。

認証されたユーザーにのみリポジトリを表示するための認証方法に関するドキュメントを見つけることができますが、Apache で実行されている GUI の 1 つを使用して、認証された各ユーザーにいくつかのリポジトリのみを表示するためのリポジトリのきめ細かい制御はできません。

webmin gitモジュールを使用してdavでgitwebを試しましたが、認証したユーザーがすべてではなく一部のリポジトリにしかアクセスできない場合でも、すべてのリポジトリがgitwebに表示されます。

Web サーバーはユーザー git で suexec を実行しており、リポジトリへの完全な読み取りアクセス権を持っています。

このようなものをどのように実装する必要がありますか?多分いくつかのフック?

さらに、ユーザーがプロジェクトのパッケージ化された tar.gz をダウンロードできるようにするオプションにのみ興味があります。ユーザーがプロジェクトと共同作業できるようにする予定はありません。多分解決策はこれ以外です。プロジェクトに関するフィードバックを受け取ることができるようにするために、trac システムがより良い解決策である場合も興味深いものになる可能性があります。

4

1 に答える 1

3

適切な解決策は、gitoliteのような認証レイヤーを追加することです。

たとえば、私のhttpd.confファイルは次のように宣言しています。

  • 適切なリポジトリのみを表示するために、gitolite を呼び出す gitweb (
    ネイティブgitweb.conf.plgitweb ファイルgitweb_config.perlからファイルをインクルードしているため)
  • プッシュ/プル/クローン コマンドを許可するかどうかを決めるために、最初に gitolite を呼び出すhttps アクセス。

例えば:

ScriptAlias /hgit/ @H@/gitolite/bin/gitolite-shell/
SetEnv GIT_HTTP_BACKEND "@H@/usr/local/apps/git/libexec/git-core/git-http-backend"
于 2012-11-27T11:54:13.170 に答える