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

cgit + redmine + git (расширенная интеграция)

Мне удалось успешно настроить Redmine с предварительной интеграцией с git. Однако мне очень интересно комбинировать cgit с текущими конфигами, но я не уверен, как это сделать. Итак, в основном я хочу использовать cgit с аутентификацией из Redmine, объединив эти две конфигурации.

Вот мои рабочие конфиги (будут работать, только если я отключу один из них):

cgit config:

<VirtualHost *:80>                                       
    ServerName git.domain
    DocumentRoot "/var/www/htdocs/cgit/" 
    DirectoryIndex cgit.cgi
    SetEnv  CGIT_CONFIG   /etc/cgitrc

    <Directory "/var/www/htdocs/cgit">
        Options FollowSymlinks ExecCGI
        Allow from all
        AllowOverride all
        Order allow,deny

        <Files cgit.cgi>
            SetHandler cgi-script
        </Files>

        RewriteEngine on
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^.* /cgit.cgi/$0 [L,PT]
    </Directory>

    <Directory "/opt/git">
        Allow from all
    </Directory>
</VirtualHost>

Для аутентификации Git через Redmine:

<VirtualHost *:80>
  ServerName git.domain
  DocumentRoot /opt/git

  SetEnv GIT_PROJECT_ROOT /opt/git
  SetEnv GIT_HTTP_EXPORT_ALL
  SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER

  ScriptAlias / /usr/lib/git-core/git-http-backend/
  AliasMatch ^/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$          /opt/git/$1
  AliasMatch ^/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /opt/git/$1

  PerlLoadModule Apache::Redmine

  ScriptAliasMatch \
    "(?x)^/(.*/(HEAD | \
    info/refs | \
    objects/(info/[^/]+ | \
        [0-9a-f]{2}/[0-9a-f]{38} | \
        pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
    git-(upload|receive)-pack))$" \
    /usr/lib/git-core/git-http-backend/$1

  <Directory /usr/libexec/git-core/>
    Options +ExecCGI
    Allow From All
  </Directory>

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

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

    RedmineDSN "DBI:mysql:database=redmine;host=localhost" 

    RedmineDbUser "redmine" 
    RedmineDbPass "redmine password" 
    RedmineGitSmartHttp yes
  </Location>
</VirtualHost>