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

Я настроил интеграцию Redmine с Apache, как описано в документации Redmine. У меня есть путь к /git, доступный через auth, и /git-private, доступный только для redmine. Когда я клонирую репозиторий через /git path, я получаю актуальное репо. Но когда я пытаюсь просмотреть его в Redmine Repo Viewer, я получаю 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>

1 ответ

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

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

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