redmine整合gitlab版本库

时间:2024-04-03 12:49:32

Clone 版本库

如果想在Redmine上看到gitlab上的版本库,需要在redmine用户对gitlab的repository有读写权限这里我的redmine的用户是apache。

1. 创建gitlab repository的目录,并且改成跟redmine同一个用户

mkdir /opt/gitlab-repo

chown -R apache:apache /opt/gitlab-repo

chmod -R a+rwx gitlab-repo/

chown -R apache:apache /var/www/.ssh

2.创建public key:

sudo -u apache -H ssh-****** -t rsa

3. 把id_rsa.pub拷贝到gitlab的SSH key中

4. 使用 MIRROR 模式来 Clone 版本库。Mirror 模式的版本库将仅包含提交信息而不包含具体提交的文件。这样 Clone 的内容比较小,速度足够快。

cd /opt/gitlab-repo

sudo -u apache -H git clone --mirror [email protected]:kernel/hgdb-core.git purog

5. 设置默认显示的版本分支

sudo -u apache -H git symbolic-ref HEAD refs/heads/Purog_3.0

配置 Redmine

1.在redmine中指定git项目的仓库位置

在项目中新建一个对应的项目,点击配置,新建版本库

 

redmine整合gitlab版本库

scm选择git

指定库路径,这个路径不是http的路径,而是这个仓库在redmine服务器上的文件路径

redmine整合gitlab版本库

 

需要注意,这些文件的路径需要有读取权限,不然会显示404

配置完成之后,在redmine的版本库选卡项就可以看到git的提交历史记录了。

redmine整合gitlab版本库

 

定时刷新版本库

有多种方法,我使用crond job

[[email protected] gitlab-repo]# cat cron_job

*/5 * * * * cd /opt/gitlab-repo/purog && sudo -u apache -H git fetch

*/5 * * * * cd /opt/gitlab-repo/migration && sudo -u apache -H git fetch

[[email protected] gitlab-repo]# crontab -u root /opt/gitlab-repo/cron_job


[[email protected] gitlab-repo]# crontab -l

*/5 * * * * cd /opt/gitlab-repo/purog && sudo -u apache -H git fetch

*/5 * * * * cd /opt/gitlab-repo/migration && sudo -u apache -H git fetch


[[email protected] gitlab-repo]# tail -f /var/log/cron

Feb 28 17:15:01 highgo crond[2406]: (root) RELOAD (/var/spool/cron/root)

Feb 28 17:15:01 highgo CROND[1443]: (root) CMD (cd /opt/gitlab-repo/purog && sudo -u apache -H git fetch)

Feb 28 17:15:01 highgo CROND[1444]: (root) CMD (cd /opt/gitlab-repo/migration && sudo -u apache -H git fetch)

Feb 28 17:16:27 highgo crontab[1535]: (root) LIST (root)

Feb 28 17:20:01 highgo CROND[1697]: (root) CMD (cd /opt/gitlab-repo/purog && sudo -u apache -H git fetch)

Feb 28 17:20:01 highgo CROND[1698]: (root) CMD (/usr/lib64/sa/sa1 1 1)

Feb 28 17:20:01 highgo CROND[1699]: (root) CMD (cd /opt/gitlab-repo/migration && sudo -u apache -H git fetch)

Feb 28 17:25:01 highgo CROND[1977]: (root) CMD (cd /opt/gitlab-repo/purog && sudo -u apache -H git fetch)

Feb 28 17:25:01 highgo CROND[1979]: (root) CMD (cd /opt/gitlab-repo/migration && sudo -u apache -H git fetch)

Feb 28 17:26:50 highgo crontab[2058]: (root) LIST (root)