[TOC]

intellij idea
intellij idea

问题引入

技术工具

目前, 使用以下工具进行项目开发工作。

开发流程(大致)

  1. 产品提出相关需求,并在Redmine上创建需求对应的Issue
  2. 技术人员给出实现需求的设计,并在Redmine上产品创建Issue下创建对应的子Issue
  3. 技术人员进行开发,拉取分支(分支名包含Redmine中的Issue编号),开发完成。
  4. 提交测试
  5. 测试完成,产品验收。
  6. 上线

痛点

我想要的最终目的:

  • 快速定位:开发人员可以根据Git的提交信息快速定位代码改动所属的需求。因此,我们在提交代码填写提交信息的时候,都会带上本地提交的所属的Redmine上创建的Issue编号。

该目的表现在以下两个方面:

  1. 本地git提交的消息(包含RedmineIssue编号)怎么和Redmine系统中的Issue进行关联。
  2. Gitlabgit提交的消息(包含RedmineIssue编号)怎么和Redmine系统中的Issue进行关联。

解决

参考Apache Flink项目

我发现Apache Flink项目是通过JIRA作为问题追踪系统,GitHub作为代码库托管平台,Git作为代码版本管理工具。这和我使用的工具很像。 于是,通过查询Gitlab文档发现它也是可以和Redmine进行集成的,让Redmine作为问题追踪系统。 这就解决了痛点中的2.

另外,我发现Apache Flink 项目在Intellij IDEA中的提交信息中包含JIRA上创建的ISSUE也是通过点击进入到ISSUE对应的页面的。查看Intellij IDEA文档得到结局方案。

Gitlab和Redmine集成

官网文档参考: https://docs.gitlab.com/ee/user/project/integrations/redmine.html#reference-redmine-issues-in-gitlab

使用Redmine作为Gitlab的外部问题追踪系统。需要进行以下配置:

  1. 进入你Gitlab项目界面
  2. 点击Setting -> 找到Integrations

aa3302b7e0a326dc0609a53f9470ba67.png

  1. 滑动鼠标,点击选择: Redmine

45c2e6935fc90be64177f80b3fa36bfe.png

  1. 勾选 Action复选框
  2. 填写以下几个必填项
    • Project URL: 填写你Redmine中为该Gitlab创建的项目地址
    • Issue地址: 这个地址就是你Issue页面的URL,只是把最后的数字替换成:id
    • 新建Issue地址: 这个URL目前没有使用,在以后得版本中可能会被删除

    假设:

    • Redmine的域名为:https://redmine.example.com
    • 配置Redmine的项目名为: gitlab

    则,这里给出一个配置的具体示例

  3. 填写好以后, 点击: Test setting. 出现successful字样就是成功了。
  4. 点击: Save changes 保存

56a460901e4bfe04e081c26408db552e.png

你配置好以后,就可以看到在你项目的左侧栏中会出现Redmine选项,点击可以进入你配置的Redmine项目链接。

15b012810430cf4a4093e2d3c3f369d0.png

配置完成以后,如何在Git commit提交的消息中引用呢?

  • 短引用(不推荐,会和Gitlab自身的Issue系统冲突,如果两个Issue编号相同,发生冲突后,以Gitlab内存为准):#<ID>,比如:Redmine中的Issue编号为100, 则你可以在git提交信息中使用: #100 引用该Issue编号。
  • 长引用(推荐): <PROJECT>-<ID> , 比如: 你配置的项目为gitlab, Redmine中的Issue编号为100, 则你可以在git提交信息中使用: GITLAB-100(注意:这里项目名需要全大写) 引用该Issue编号。

代码提交到Gitlab以后,就可以根据<PROJECT>-<ID>自动生成链接到Redmine的链接了。

c74799198c0aae6b5b82dd088342af9c.png

Intellij IDEA本地配置

本地配置参考Intellij IDEA文档: https://www.jetbrains.com/help/idea/handling-issues.html

以下是配置步骤:

  1. Intellij IDEA -> Setting... (Mac系统: command + ,)
  2. Version Controll -> Issue Navigation -> 点击 + -> Add Issue Navigation Link
    ![c4bde2ac4d152be1f770ef3eeb8b04fa.png](/wp-content/uploads/images/idea-setting.png
  3. 配置
    • Issue ID(regular express) : 正则匹配Git commit提交信息里面的内容
    • Issue Link: 将匹配到的Issue ID内容, 添加这里配置的超链接。

Explame 这里是让你实时验证你上面填写的内容

- Issue ID :输入待验证的内容
- Issue link : 显示通过以上填写的正则匹配到以后添加的链接地址

假设: 我们需要匹配提交信息中包含POLARIS-111这种格式的内容,匹配到以后给这个匹配内容添加一个超链接,连接到https://example.com/issue/111, 我们可以进行一下配置:

aca9b4b5496582bd5d6695a845dfa61c.png

配置说明:

- `POLARIS-(\d+)`: 这个正则匹配内容
- `https://example.com/issue/$1` : 这里是给上面匹配内容刚添加的超链接, 其中`$1`使用正则中反向引用,这里代码匹配到的数字,也就是`111`

  1. 点击 OK -> 点击 OK
  2. 查看Git提交历史记录 (Mac: command + 9
    可以看到已经添加上超链接了。 点击是可以跳转的。

63940cee072af440653c2ff33a5c6e53.png

总结

通过以上配置,我们将GitlabRedmine进行的集成,可以轻松的通过提交的消息包含Issue链接到Redmine系统。同时本地Intellij IDEA也可以此操作,可以很方便定位问题。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。