В настоящее время я экспериментирую с настройкой сервера репозитория GIT, чтобы мы могли перейти с SVN на GIT.Я почти все рассмотрел, но осталась проблема.
Текущая настройка выглядит следующим образом:
- Все разработчики (и не разработчики) имеют учетные записи пользователей &правильные группы, потому что сервер является клиентом NIS
- Все репозитории сделаны в / var / git /
- Все операции извлечения / отправки выполняются через ssh
Это работаетпока что идеально, и устраняет необходимость в gitosis или gitolite.
Потому что я хотел бы иметь обзорный обзор репозиториев, которые я настроил, включая gitweb, включая pathinfo.Поскольку репозитории являются частными, я настроил аутентификацию через Perl AuthenNIS, и это работает, но здесь я сталкиваюсь с проблемой.
Нежелательно, чтобы все разработчики имели доступ ко всем репозиториям, но gitweb просто показывает каждый репозиторий(пользователь apache) может читать.
Итак, мой вопрос: можно ли заставить gitweb показывать только репозиторий GIT, к которому у текущего пользователя есть доступ?
Возможные решения :
- Дальнейшее управление доступом через .htaccess.Pathinfo включит это, но не помешает доступу к репо через URL, не являющиеся pathinfo (например, /repo.git/ не будет работать, но /gitweb.cgi?p=repo.git будет)
- Создание полной среды Gitosis / Gitolite и интеграция ее в Gitweb (по сути это ).Я хотел бы предотвратить это, поскольку нежелательные издержки
- заставляют gitweb работать как аутентифицированный пользователь HTTP.Это решит все проблемы с контролем доступа, но я не знаю, как это сделать
- gitweb
$export_auth_hook
в сочетании с $cgi->remote_user
кажется многообещающим, но мое понимание perl слишком ограничено, чтобы его использовать (hook должен убедиться, что у пользователя есть разрешение на доступ к каталогу репо, прежде чем показывать / экспортировать его)
Есть ли кто-нибудь, кто знает, как заставить работать 3 или 4, или имеет другое решение?