Для общего git-репо, обслуживаемого через SSH и HTTPS, как контролировать доступ для обоих протоколов? - PullRequest
1 голос
/ 17 сентября 2009

Я использую hooks/update, чтобы контролировать, кто может обновлять определенные ссылки в общем хранилище. Это прекрасно работает для SSH, но я недавно обнаружил (по крайней мере с git-1.6.4.2), что этот хук не влияет на нажатия WebDAV, т.е. , любой пользователь может обновить любую ветку.

Да, я могу добавить директивы Require group ..., как в 8 способах совместного использования вашего репозитория git вместе с отдельными файлами групп, но я бы хотел избежать необходимости поддерживать параллельные конфигурации авторизации!

Другая альтернатива - переписать hooks/update, но это кажется пустой тратой, учитывая, что она уже работает для SSH.

1 Ответ

3 голосов
/ 17 сентября 2009

Вы должны понимать, что для Git (в настоящее время) HTTPS является «тупым» протоколом, т. Е. Весь обмен идет вообще без участия git на сервере, включая использование перехватчиков; это только веб-сервер (с WebDAV для HTTPS push), который задействован.

Однако вы должны взглянуть на инструменты управления доступом к репозиторию, такие как Gitosis (в Python, используя setuptools) или новые Gitolite (в Perl, проще) или репо инструмент из проекта Google Android или что-то еще. Возможно, они предложат централизованное управление доступом.

...