为什么要做 JIRA 和 GitLab 集成

GitLab 是面向开发人员的, 而 JIRA 更多的是项目管理驱动的, 而项目的目标总是要让团队更加紧密的协作。 一般项目管理员倾向于不干预 Gitlab, 同样的,开发人员也不是很有激情在 JIRA 上做贡献.

JIRA是项目管理的工具,GitLab是代码的管理工具,将两者集成可以实现项目管理和开发的结合。开发人员的每一次代码变更都可以反应到JIRA ISSUE的comment中。并且生成相互关联的链接。大大方便了相关问题跟踪。另外开发人员也可以直接通过Git commit 关闭 JIRA ISSUE。简化了在JIRA上的操作。

集成配置步骤

1. 通过插件git integration for jira集成

可以使用提交消息来生成JIRA工作日志,注释和活动,以及执行工作流过渡。该插件还尝试将GitLab用户映射到JIRA用户,以便将工作日志,注释等链接到正确的用户。

在 JIRA 安装 Git 插件
1、在线安装。
image.png

2、手动安装
登录官网,选择下载对应的安装包:
image.png
image.png
最终下载得到的是一个名为 jira_git_plugin-**.jar 的文件

在 JIRA 上传安装下载的插件包
image.png

image.png
image.png
配置上license:
image.png
点击“update”:

image.png
然后点击 Gitlab 图标:

image.pngimage.png

image.pngimage.png

2. 通过手动配置进行集成

1.配置jira

为GitLab创建一个拥有访问权限的JIRA账号或者是API Token;以API Token为例。

Jira集成gitlab - 图14

2. 配置gitlab


1、登录gitlab后台,进入需要配置的项目,再点击 Settings->Integrations->JIRA,如图:
image.png

  1. 配置jira信息

    Jira集成gitlab - 图16

    在GitLab中创建并使用jira用户,并且仅在集成工作中使用该帐户。 单独的帐户可以确保定期的帐户维护不会影响您的集成。
    https://docs.gitlab.com/ee/user/profile/account/create_accounts.html

以上参数都需要配置:

  • Active、Trigger、Merge request:都勾上
  • Web URL:JIRA项目的基础URL
  • Web API URL:如果在JIRA中没有特殊配置API的URL,还是填上面的URL
  • Username:JIRA账户用户名
  • Enter new password: JIRA账户密码
  • Transition ID:此时填写的在JIRA中对应的流程关闭ID -同步commit 信息跟 transition Id 的值没有关系的

3、填写完成后保存,若填写信息有误会保存失败。

4、测试在git中按照 jira任务编号+提交人+注释内容 的注释规范提交代码,jira中相关任务下就会出现具体的提交信息:

image.png

以上是在某一个具体项目配置JIRA。如果我们有几十,几百个项目,则可以在Admin菜单Service Templates配置JIRA ,这样以后新创建的代码仓库都会自动激活JIRA服务。不必要每个项目都重复操作一遍。(如果是已经存在的未激活JIRA服务的项目,则Service Template没有效果,需要重新在项目内激活)

Transition ID的作用

官网提供了三个前缀:触发场景就是在代码合并到默认分支(master)时jira自动触发相应操作

  • Resolves PROJECT-1
  • Closes PROJECT-1
  • Fixes PROJECT-1

还是以FTBQ-2为例,commit是备注写 Close FTBQ-2 测试11111

然后提交合并到默认分支master,jira中会自动从处理中转为完成

image.png

最终效果

通过把 GitLab 集成到 JIRA, 可以解决这个痛点,因为这样可以提供一个更加舒适的环境,让开发人员可以通过 commit 语句方便的项目团队沟通:当开发人员提交代码到 gitlab 的时候,gitlab 可以根据 commit 信息,向对应的 jira 添加一个备注和一条链接:
image.png
image.png

在 JIRA平台上,可以看到和各个 jira 对应的代码提交情况:某个功能,或者某个 bug,对应那些代码,一目了然。而且可以通过点击commit的链接,直接跳转到 gitlab 上,查看提交的代码。
image.pngimage.png

通过插件git integration for jira集成,可以使用提交消息来生成JIRA工作日志,注释和活动,以及执行工作流过渡。该插件还尝试将GitLab用户映射到JIRA用户,以便将工作日志,注释等链接到正确的用户。
image.png

参考

  • WebService which intercept hook events from gitlab and use JIRA REST api to interact with issues.

  • Jira integrations -新版配置

  • jira integrations -旧版配置

  • Jira integration issue management

Integrating issue management with Jira requires you to configure Jira and enable the Jira integration in GitLab. After you configure and enable the integration, you can reference and close Jira issues by mentioning the Jira ID in GitLab commits and merge requests.