Интеграция с 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-адрес.