Интеграция системы управления проектами Redmine 3.4.3 с системой контроля версий Subversion 1.8.10 на Debian 8 Jessie

Инструкция как развернуть Redmine 3.4.3, Subversion (с поддержкой WebDAV) на Debian 8 Jessie. На основе этих инструкций будет рассмотрена интеграция Redmine с SVN.

 

Redmine может отображать содержимое SVN хранилища, вести логирование изменений в хранилище, управление правами доступа к хранилищу на основе своих учетных записей и их подписок к проектам, автоматически создавать SVN хранилища для новых проектов, считывать с текстов информацию с коммитов в SVN проектах.

 

Приведенная ниже инструкция основывается на том что используется система Debian 8 Jessie и установлены Redmine 3.4.3 и Subversion 1.8.10 + WebDAV. 

 

Устанавливаем необходимые зависимости:

sudo apt-get install libapache-dbi-perl libapache2-mod-perl2 libdbd-mysql-perl libdigest-sha-perl -y

 

Для авторизации в SVN по учётными записям Redmine, создаем символическую ссылку на скрипт Redmine.pm:

sudo ln -s /opt/redmine/extra/svn/Redmine.pm /usr/lib/x86_64-linux-gnu/perl5/5.20/Apache/Redmine.pm

Редактируем конфигурационный файл модуля (dav_svn) /etc/apache2/mods-available/dav_svn.conf (приводим к виду):

PerlLoadModule Apache::Redmine

<Location /svn>
   DAV svn
   SVNParentPath "/var/svn"
   SVNPathAuthz off

   Order deny,allow
   Deny from all
   Satisfy any

   AuthType Basic
   AuthName redmine
   AuthUserFile /dev/null

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

   # Доступ только чтение
   <Limit GET PROPFIND OPTIONS REPORT>
      Require valid-user
      Allow from localhost
      Satisfy any
   </Limit>
   # Доступ на запись
   <LimitExcept GET PROPFIND OPTIONS REPORT>
      Require valid-user
   </LimitExcept>

   # Подключение к базе данных MySQL
   RedmineDSN "DBI:mysql:database=redmine;host=localhost"
   RedmineDbUser "redmine"
   RedmineDbPass "password"
</Location>

# Для доступа Redmine к хранилищам SVN без авторизации
<Location /svn-private>
   DAV svn
   SVNParentPath "/var/svn"

   Order deny,allow
   Deny from all
   Satisfy any

   # Доступ только чтение
   <Limit GET PROPFIND OPTIONS REPORT>
      Allow from redmine_server_ip
   </Limit>
</Location>

 

Назначаем права доступа к репозиториям (SVN) для HTTP-сервера (www-data), добавляем пользователя (от имени которого устанавливался Ruby) и пользователя (от имени которого работает SVN) в группу HTTP-сервера (www-data):

sudo chown -R www-data:www-data -R /var/svn
sudo adduser jakonda www-data
sudo adduser subversion www-data

Перезапускаем службу apache:

sudo service apache2 restart

 

Выполним настройку Redmine. Переходим в АдминистрированиеНастройкиХранилища. Отмечаем помеченные на скриншоте графы, а так же нажимаем Сгенерировать ключ (он необходим для автоматического создания SVN хранилищ), нажимаем Сохранить.

 

Команда для создания SVN хранилища для проектов Redmine:

/opt/redmine/extra/svn/reposman.rb --redmine 192.168.1.2 --key=ZGnsYLjWdspJqmH0Ppem --svn-dir /var/svn --owner redmine --group www-data --url http://192.168.1.2/svn-private/ --verbose

Описание аргументов скрипта:

—key — API ключ (сгенерированый ключ в настройках Redmine)
—redmine — хост Redmine.
—svn-dir — путь к SVN хранилищу.
—owner — владелец хранилища (указываем пользователь от которого был установлен Redmine).
—group — группа владельцев хранилища (указываем группу web-сервера www-data).
—url — URL-ссылка к SVN хранилищу (указываем на svn-private, для доступа к хранилищам без авторизации).

Пример вывода выполнения команды:

querying Redmine for active projects with repository module enabled...
retrieved 1 projects
processing project test-project-jakonda (Test project jakonda)
 repository /var/svn/test-project-jakonda created
 repository /var/svn/test-project-jakonda registered in Redmine with url http://192.168.1.2/svn-private/test-project-jakonda

 

 

Настройка интеграции Redmine и SVN завершена. Теперь можно создавать проекты в Redmine, назначить участников в них и выполнять команду создания SVN хранилищ для них. После создания хранилищ, доступ будет к ним осуществятся по учетными записям Redmine и по назначенным участникам на тот или иной проект.

 

Понравилась или оказалась полезной статья, поблагодари автора

 

БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
Загрузка...

Оставить ответ

3 × один =