Назад | Перейти на главную страницу

Интеграция с Redmine с git - проблема с доступом к git из redmine, но не из внешнего клиента git

Я настроил интеграцию redmine с apache, как описано в документации redmine. У меня есть путь / git, доступный с помощью auth, и / git-private, доступный только для redmine. Когда я клонирую репозиторий с помощью пути / git, я получаю обновленный репозиторий. Но когда я пытаюсь просмотреть его в программе просмотра репозиториев Redmine, я получаю сообщение 404 «Запись или редакция не найдены в репозитории». ошибка. Попытка клонировать с использованием URL-адреса git-private в поле Redmine дает пустой репозиторий, хотя это тот же репозиторий, что и тот, который клонирован по пути / git. Я включил RedmineGitSmartHttp в пути / git. В чем может быть проблема?

PerlLoadModule Apache::Redmine

SetEnv GIT_PROJECT_ROOT /path/to/git/root
SetEnv GIT_HTTP_EXPORT_ALL

ScriptAlias /git/ /usr/lib/git-core/git-http-backend/

<Location /git>
      AuthType Basic
      Require valid-user
      AuthName "Git"

      PerlAccessHandler Apache::Authn::Redmine::access_handler
      PerlAuthenHandler Apache::Authn::Redmine::authen_handler

      RedmineDSN "DBI:mysql:database=<dbname>;host=<db host>" 
      RedmineDbUser "<user>" 
      RedmineDbPass "<password" 

      RedmineGitSmartHttp yes
</Location>

<Location /git-private>
      Order deny,allow
      Deny from all

     <Limit GET PROPFIND OPTIONS REPORT>
        Options Indexes FollowSymLinks MultiViews
         Allow from <redmine public ip>
         Allow from <redmine pvt ip>
         Allow from <localhost>
     </Limit>
</Location>

Redmine не может получить доступ к репозиторию git через HTTP. Это всегда требуется прямой доступ файловой системы к голому репозиторию git для отображения его содержимого на вкладке «Репозиторий». Таким образом, ваш /git-private конструкция вообще не будет работать (хотя что-то подобное можно сделать с помощью Subversion)

Следовательно, в настройках репозитория Redmine вы должны ввести путь к файловой системе в чистый репозиторий git, а не URL-адрес.