Как вы настраиваете 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

Это лишь некоторые из наиболее важных функций. Кроме того, его поведение легко расширить с помощью собственных сценариев.

Другие вопросы по тегам