Как вы настраиваете cgit с помощью pull и push через http?
Я пытаюсь настроить экземпляр CGIT, из которого вы можете нажать или тянуть через HTTP. Тем не менее, я могу просматривать свои репо через http через cgit, но когда я пытаюсь перейти к этому репо, я получаю сообщение об ошибке:
Фатальный, /info/refs недействителен, это git-репозиторий?
Этот путь существует на сервере, и это пустой файл. Я создал хук после обновления, который автоматически выполняет git update-server-info (post-update.example из репозитория). Но когда я пытаюсь просмотреть файл /info/refs через http, cgit сообщает, что это пустой репозиторий.
Что я могу сделать, чтобы получить доступ к этому файлу через http, чтобы я мог выдвигать или извлекать URL-адреса, которые мне предоставляет cgit?
У меня есть репозитории на провайдере общего хостинга, поэтому у меня нет доступа к apache.conf, но есть только файлы.htaccess...
2 ответа
Насколько я могу судить, cgit не позволяет отправлять сообщения в репозитории Git (просматривая их список возможностей).
Скорее всего, вам нужно настроить что-то вроде git-http-backend
чтобы быть в состоянии подтолкнуть. git-http-backend
man-страница имеет примеры конфигураций для Apache 2.x для анонимного чтения с аутентифицированной записью и для аутентифицированного чтения и записи.
Если вы хотите, чтобы бэкэнд был более функциональным, чем git-http-backend
Я бы порекомендовал Гитолит. У этого есть некоторые действительно хорошие особенности:
- Использовать единственного пользователя unix ("реального" пользователя) на сервере
- Предоставить доступ многим пользователям gitolite:
- они не "настоящие" пользователи
- они не получают доступ к оболочке
- Контролируйте доступ ко многим git-репозиториям:
- доступ для чтения контролируется на уровне репо
- доступ для записи контролируется на уровне ветки / тега / файла / каталога, включая информацию о том, кто может перематывать, создавать и удалять ветки / теги
- Может быть установлен без рут-доступа, при условии, что git и perl уже установлены
- Аутентификация чаще всего выполняется с использованием sshd, но вы также можете использовать http, если хотите (для этого может потребоваться доступ с правами root)
- Сохраните всю конфигурацию в репозитории администратора git
Это лишь некоторые из наиболее важных функций. Кроме того, его поведение легко расширить с помощью собственных сценариев.