- 在gitlab上添加redmine主机的秘钥(参考我之前的博客)
- redmine服务器克隆代码版本库,记得一定要加–mirror,还有就是库目录的用户属组要和redmine一样
mkdir /var/www/git-repo/
cd /var/www/git-repo/
git clone --mirror ssh://git@ip:端口/xxx_projects/xxx_java.git
- 登录redmine设置版本库,点击左上角管理,然后点击配置,选择版本库
- 启用SCM:本地只安装了git,所以其他的取消掉
- 启用用于版本库管理的Web Service:需要勾选,实现gitlab的web_hook访问
- 版本库管理网页服务API密钥:点击生成或者手动输入,记录一下后面配置gitlab需要用到
- 用于引用问题的关键字:refs,references,IssueID,* 我填的是这个,注意要加上*,不然Git commit 提交的时候必须关键字:#issue id 才能关联到issue。加了*之后Git的提交格式就不一定要这样都能推送到issue
- 允许引用/修复所有其他项目的问题:勾选后就可以在commit message中使用上一项定义的关键字实现git提交和redmine issue的关联,如 refs:#123 表示将本次提交关联到redmine的123号任务
- 激活时间日志:勾选后可以在commit message中设置当前提交耗时记录,方式为 Implement feature #1234 @2h 或者 Implement feature #1234 @15m
- 最下面一个设置框中就是自定义关键字,实现commit message控制remine中的issue的状态,比如我这里预设了解决、进行中和关闭三个,在commit message中的用法为: ok:#123 或 start #123 或 close:#123 @2 ,这最后一个实例还把时间也带上了。
- 在redmine的项目中创建版本库,选择你的项目,点击配置,点击版本库,注意版本库的路径要填.git目录,redmine一定要有该目录的权限,否则会报404.
- 创建好后在项目里点击版本库,报500错误
- 进入redmine服务器的Git存储库目录,执行git fetch,再点击存储库,就能看到存储库了。还报500的话重启下redmine。
- 做定时任务
*/1 * * * * /usr/bin/cd /var/www/git-repo/mycs_java.git && /usr/bin/git fetch
- 其他篇
redmine安装github_commit和redmine_gitlab_hook插件
redmine整合Git日志,并自动提交版本变更记录至redmine Issue
gitlab配置webhook自动更新redmine状态和gitlab提交日志