美文网首页
Jira+Gitlab 集成配置

Jira+Gitlab 集成配置

作者: 含辞未吐气若幽兰 | 来源:发表于2020-10-22 11:03 被阅读0次

    参考链接:

    https://confluence.atlassian.com/fisheye/using-smart-commits-960155400.html#id-_smart_commits_commands-comment

    https://docs.gitlab.com/ee/user/project/integrations/jira.html#gitlab-jira-integration

    碰到的问题:Gitlab的项目集成页面里,配置JIRA集成是,总是报错:Something went wrong on our end。

    后台看git服务器的实时日志才知道报错信息如下:

    Started PUT "/idc/gds-change/services/jira/test" for 117.82.229.159 at 2019-04-10 22:56:50 +0800

    Processing by Projects::ServicesController#test as JSON

    Parameters: {"utf8"=>"✓", "authenticity_token"=>"[FILTERED]", "service"=>{"active"=>"1", "commit_events"=>"1", "merge_requests_events"=>"1", "url"=>"http://jira.gds-services.com:8081", "api_url"=>"", "username"=>"gitlab", "password"=>"[FILTERED]", "jira_issue_transition_id"=>"21"}, "namespace_id"=>"idc", "project_id"=>"gds-change", "id"=>"jira"}

    Completed 500 Internal Server Error in 189ms (ActiveRecord: 14.3ms)

    SocketError (Failed to open TCP connection to jira.gds-services.com:8081 (getaddrinfo: Name or service not known)):

    终于找到原因是因为:gitlab反向连接jira服务,因为jira域名是vpn内部的,外网访问不到

    在配置页面,将Web URL 由http://jira.gds-services.com:8081修改成:http://support.gds-services.com:8081才正确

    2020-10月,gitlab 服务器从gitlab.idcmatic.com 迁移到gitlab.gds-services.com 后,在进入gitlab后台进行配置时,Web URl 输入:,保存时报错信息如:

    The form contains the following error:

    Url is blocked: Requests to the local network are not allowed

    解决方法:

    最终配置如下:

    配置后,发现jira后台里查看每个git项目的库源地址,并没有更新,仍然显示的是原来的idcmatic.com,重启了gitlab 和 Jira 后,重新索引也不行,如下图:

    最终的处理方法是,删除原来的连接的git库,重新建一个git库,进入gitlab的菜单:User Settings --》Access Tokens,创建一个Personal Access Tokens,本次使用的tokens是:w8gEYzA-k4YTLTGJ2gsm,如下图:

    碰到的第二个问题,用命令行git commit -m "Fix RMS-81 by zhongling on 20:30",再git push origin master ,但对应的JIRA票RMS-81上的备注里,就是没有任何更新的gitlab记录;而需要在gitlab的页面上提交了comments:Fix RMS-81 ,才会把这句评论更新写到JIRA票RMS-81的备注里面去。

    找了好久,都没找到原因,都是按官方文档配置的,最后在这个插件的官方说明页面:https://bigbrassband.com/git-integration-for-jira/documentation/addon-requirements.html看到有这样一句:Administrators must grant themselves the ‘View Development Tools’ permission in order to view commit information on the issue pages.      把adminstrators 加进来,如下图:

    再在命令行修改一个代码文件,操作一次:

    #git add .

    #git commit -m "OC-605 如果出现在jira页面就说明是成功了,哈哈哈哈哈 by zhongling"

    #git push origin master

    然后进入JIRA票:OC-605,终于成功了,如下图:

    提交代码时,在备注开头写上jira的工单号,提交代码,即可在工单出看到提交记录

    支持的所有的 trigger word如下:

    Close, Closes, Closed, Closing, close, closes, closed, closing

    Fix, Fixes, Fixed, Fixing, fix, fixes, fixed, fixing

    Resolve, Resolves, Resolved, Resolving, resolve, resolves, resolved, resolving

    Implement, Implements, Implemented, Implementing, implement, implements, implemented, implementing

    注意:

    只有commits 或者merges到默认分支(默认是master)才能响应上述的trigger, 如果想修改默认分支,可以在gitlab里修改

    可以在一个备注里关闭多个bug

    如果发现仅仅能关闭jira bug 但却不能添加备注,原因一般是resolution为空。就像上图中本来期望从"In Progress"到"集成到开发环境"是一个fix bug的步骤,通过gitlab的trigger能够关闭对应的bug并且自动添加备注,但发现只能关闭bug不能添加备注,查看后发现移动到"集成到开发环境“这一步时对应的resolution是unresolved。解决方案就是在工作流中设置移动到"集成到开发环境”时设置resolution为resolved. 经过测试验证没问题后,最终状态再改为"done"

    支持的备注可以类似"Fix DEMO-1, fix the bug that can not open the page"也可以不用中间的逗号"Fix DEMO-1 fix the bug that can not open the page", 也可以把Fix关键词放在其他位置比如中间或者最后" fix the bug that can not open the page, Fix DEMO-1"。但是,其中的DEMO-1必须全部为大写,否则jira识别不了,因为在JIRA中都是大写。

    测试log:

    git commit -m "OC-605 The 5th time"   Jira 同步了链接 和 注释  不会更新状态

    git commit -m "Fix OC-606 The 6th time"  Jira 未同步链接和注释,但更新了状态,更新状态前:解决结果=未解决

    git commit -m "Fix OC-606 The 6th time"  Jira 未同步链接和注释,切没有更新了状态,更新状态前:解决结果=待解决   (说明票的解决结果:可能只能是未解决)

    Only commits and merges into the project’s default branch (usually master) will close an issue in Jira. You can change your projects default branch under project settings.

    The Jira issue will not be transitioned if it has a resolution.

    JIRA票当前状态是:开发中,动作【提交测试】后,状态更新为:待测试。git提交代码时,使用命令:git commit -m "fix OC-606 这个bug成功修复了"   ,JIRA页面更新如下:

    如上图所示,Gitlab实际只是更新了状态,而没有把gitlab提交的comment(这个BUG修复了)写进JIRA票的注释里来。想要实现的效果就是:更新状态同时把Gitlab提交的comment内容写进JIRA票的注释中,在官方文档看到有如下这么一段:

    https://confluence.atlassian.com/fisheye/using-smart-commits-960155400.html

    但测试使用了命令:git commit -m "OC-606 #fix 这个BUG修复了"  ,就是不生效,实际只是:JIRA票页面正常写了Gitlab提交的comment到注释,单不会更新状态,JIRA票页面显示如下:

    一次gitlab提交,更新多个jira票状态这样写:git commit -m "fix OC-606 fix OC-607"

    相关文章

      网友评论

          本文标题:Jira+Gitlab 集成配置

          本文链接:https://www.haomeiwen.com/subject/eulumktx.html