GitLab和Redmine深度集成

2018/12/12 posted in  PM

Redmine Issue Tracker

  1. 设置Redmine Issue Tracker
    在GitLab的项目setting里面找到integrations,找到redmine
    修改如下:

  2. 关闭内置issue

    setting->general->Permissions

Redmine 启用版本库

  1. 进入redmine容器

    docker exec -it redmine /bin/bash
    
  2. 安装插件redmine_gitlab_hook

    进入/usr/src/redmine/plugins目录

    git clone https://github.com/phlegx/redmine_gitlab_hook.git
    

    登录redmine管理员,管理->插件,找到Redmine GitLab Hook plugin,进入配置

  3. 创建本地git仓库并拉取

    mkdir -p /home/redmine/git-repo #创建本地git仓库
    cd /home/redmine/git-repo/
    git clone --mirror http://username:password@gitlab.1234tv.lan:/awesome/python-test.git #此处最好采用http加上用户名和密码的方式拉取git仓库
    chmod -R redmine:redmine python-test.git ##记得修改用户组为redmine:redmine
  4. 登录redmine管理员,启用版本库

  5. 配置版本库

    进入到和gitlab项目对应的项目中,进入设置页面
    git clone时加了-mirror参数,使用下面参数

    如果git clone 时没有使用-mirror参数,使用下面的配置

配置GitLab Webhook

进入GitLab的项目中,在setting->Integrations中添加如下webhooks地址

webhook url格式:

{redmine_installation_url}/gitlab_hook?key={redmine_repository_API_key}&project_id={redmine_project_identifier}

如果redmine的项目名称和版本库的标识不一致,需要带上repository_name参数,手动指定redmine上的版本库

如果需要gitlab webhook插件自动创建版本库,还需要加上repository_git_urlrepository_namespacerepository_name这几个参数,

其中repository_git_url为需要克隆的远程仓库的地址
repository_namespacerepository_name自由填写,会在redmine的版本库里生成类似 {repository_namespace}_{repository_name}样式的版本库标识

验证

  1. 在redmine里创建一个issue,状态为新建
  2. 本地clone项目,少许修改,commit日志填写"bugfix #" (id为redmine上的issue id),然后push 到服务器上
  3. 查看redmine上该issue的状态是否改变