Redmine + git + SCM Creator

Для работы с Git и автоматического создания репозиториев постави плагин с названием SCM Creator.

Ставился по инструкции с офф.сайта.

Единственное отличие — правил «под себя» конфиг.

Установка в моем случае выглядела таким образом.

1) Создать католог, в котором будут храниться репозитории Git и вешаем на него права для пользователя, от которого запущен веб-сервер (в данном случае www-data):

mkdir /storage/git
chown www-data:www-data /storage/git

2) Скачиваем сам плагин (http://projects.andriylesyuk.com/attachments/download/388/redmine_scm-0.4.2.tar.bz2) и распаковываем содержимое архива в каталог plugins там, где у нас лежит сам Redmine

/storage/redmine/plugins

3) В каталоге с конфигами Redmin’a создаем файлик scm.yml и наполняем следующим содержимым:

# vim /storage/redmine/config/scm.yml
production:
  deny_delete: false
  auto_create: true
  force_repository: true
  pre_create: /usr/local/bin/pre-create.sh
  post_create: /usr/local/bin/post-create.sh
  pre_delete: /usr/local/bin/pre-delete.sh
  post_delete: /usr/local/bin/post-delete.sh
  max_repos: 0
  only_creator: true
  allow_add_local: true
  allow_pickup: true
  svn:
    path: /storage/svn
    svnadmin: /usr/bin/svnadmin
    url: svn
  git:
    path: /storage/git
    git: /usr/bin/git
    options: --bare
    url: http://fpm.vit.ua/git
    update_server_info: true
    git_ext: false
    append: trunk

4) Устанавливаем сам плагин

cd /storage/redmine
rake redmine:plugins:migrate RAILS_ENV=production

5) Настраиваем апач, чтобы из него можно было коммитится:

Подан конфиг для web-сервера Apache

SetEnv GIT_PROJECT_ROOT /storage/git
    SetEnv GIT_HTTP_EXPORT_ALL 1
        ScriptAliasMatch \
                "(?x)^/git/(.*/(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
    ScriptAlias /git/ /usr/share/gitweb/gitweb.cgi/
    AliasMatch ^/gitweb/$ /dev/null

    <Location /git>
        AuthType Basic
        AuthName "Project membership authentication" 
        Require valid-user

        PerlAccessHandler Apache::Authn::Redmine::access_handler
        PerlAuthenHandler Apache::Authn::Redmine::authen_handler
        RedmineDSN "DBI:Pg:database=*******************;host=127.0.0.1" 
        RedmineDbUser "*****************" 
        RedmineDbPass "*****************" 
        RedmineCacheCredsMax 50
        RedmineGitSmartHttp yes
    </Location>

6) Перезапускаем web-сервер.

7) Наслаждаемся работой с Git из Redmine

 

Данный плагин умеет работать с рапозиториями Subversion/Git/Mercurial/Bazaar

 
comments powered by Disqus