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

StackOverflow https://stackoverflow.com/questions/1435687

  •  07-07-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top