gitweb и HTTP-аутентификация для каждого проекта

Я успешно настроил gitweb на виртуальном хосте apache, доступном для всех аутентифицированных пользователей.

Сам сервер предоставляет несколько репозиториев git через https и имеет доступ к этим проектам для каждого пользователя/группы. Например, test1.git доступен для чтения/записи только группе test1, а test2.git доступен для чтения/записи только группе test2.

Теперь я также хочу, чтобы только эти группы видели свои соответствующие репозитории git в интерфейсе gitweb. Возможно ли иметь эти детальные права доступа для gitweb?

Если нет, существует ли облегченный веб-интерфейс для git, который может обрабатывать базовую HTTP-аутентификацию для каждого проекта (и, возможно, аутентификацию ldap на более позднем этапе)?

Редактировать Просто чтобы было понятнее (поскольку из-за комментариев возникает некоторая путаница): Пример:

  • Имеется 10 репозиториев (test1, test2, ... test10)

  • пользователь lockdoc входит в группу test1 и test3

  • После аутентификации через http с именем пользователя lockdoc и его/ее паролем этот пользователь может видеть только проекты git test1 и test3 и не может просматривать/видеть какие-либо другие проекты

  • Нет необходимости писать (проталкивать) через веб-интерфейс, так как это уже реализовано


person lockdoc    schedule 31.12.2012    source источник
comment
Хотите ли вы иметь простое представление ваших репозиториев только для чтения (в этом случае подходит GitWeb) или вы хотите управлять репозиториями (в этом случае gitolite, как ответил @VonC, является вариантом )?   -  person try-catch-finally    schedule 31.12.2012
comment
Кстати, я думаю, что этот вопрос лучше подходит для стека Server Fault.   -  person try-catch-finally    schedule 31.12.2012
comment
Вы можете попробовать сопоставить разные URL-адреса в разных разделах <Location> или <LocationMatch>, требующих разных настроек аутентификации (файл, метод и т. д.).   -  person try-catch-finally    schedule 31.12.2012
comment
Я подтверждаю, основываясь на вашем редактировании, что gitolite — правильный инструмент для работы. Я отредактировал свой ответ с более подробной информацией.   -  person VonC    schedule 31.12.2012


Ответы (1)


Нет графического интерфейса, но я бы рекомендовал использовать gitolite для такого рода мелкозернистых авторизация.

См. этот httpd.conf для доступа к LDAP и gitolite. :

Конфигурация https будет выглядеть так:

ScriptAlias /hgit/ @H@/sbin/gitolite-shell/
SetEnv GIT_HTTP_BACKEND "@H@/usr/local/apps/git/libexec/git-core/git-http-backend"
<Location /hgit>
   ...
</Location>

В обоих случаях вы можете защитить эти http-адреса с помощью аутентификации на основе LDAP:

AuthName "LDAP authentication for ITSVC Smart HTTP Git repositories"
AuthType Basic
AuthBasicProvider myldap companyldap
AuthzLDAPAuthoritative Off
Require valid-user

И вы зарегистрируете своих пользователей/группы/репозитории в gitolite.conf файле конфигурации, связанном с гитолитом.

@lockdoc_repos           =   test1 test3 # group of repo

repo @lockdoc_repos
    R                    = lockdoc # read-only access for lockdoc
    R                    = gitweb daemon # can be browsed   

Подробнее о том, как разрешить просмотр для репозиторий от sitaram (Ситарам Чамарти), сам создатель gitolite.

person VonC    schedule 31.12.2012