暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

gitlab集成jira-相关配置

鲁班同学 2020-05-29
1068

学习思路:


  1. gitlab基于docker安装

  2. jira基于docker安装

  3. gitlab配置jira-代码push后jira自动显示注释,Merged Master后自动修改jira状态


一、基于docker安装gitlab

1、镜像拉取

#拉取最新的gitlab镜像
docker pull gitlab/gitlab-ce

当然还可以指定版本拉取

docker pull gitlab/gitlab-ce:xxx

2、运行容器

docker run -d  -p 8443:443 -p 8080:80 -p 8022:22 --name gitlab --restart always -v $PWD/config:/etc/gitlab -v $PWD/logs:/var/log/gitlab -v $PWD/data:/var/opt/gitlab gitlab/gitlab-ce

参数解释:


  1. # -d:后台运行

  2. # -p:将容器内部端口向外映射

  3. # --name:命名容器名称

  4. # --restart always:失败自动重启

  5. # -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录

  6. #  $PWD在本目录(当然也可以指定绝对路径)


建议:在执行该命令时自己新建gitlab包路径,因为会将容器内文件映射到本目录下


到此为止浏览器访问8080端口就可以了


二、基于docker安装jira


jira是Atlassian公司的收费产品,主要包含jira core(基本业务管理)、jira Align(企业级敏捷规划)、jira Software(项目与问题追踪);目前企业用的基本都是Jira Software,我们这里安装的也是


1、拉取镜像

docker pull dchevell/jira-software:7.13.0

当然也可以不带版本号,默认拉取最新的


2、运行容器

docker run -d -it -p  8080:8080  --privileged  -m 2048M -v $PWD/jira-data:/var/atlassian/application-data/jira  -v /etc/localtime:/etc/localtime --name jira dchevell/jira-software:7.13.0

3、连接mysql


首先下载jia包(mysql-connector-java-5.1.49.jar)可以mysql官网下载

然后进行如下操作


#拷贝jar包到容器jira的lib下

docker cp mysql-connector-java-5.1.49-bin.jar jira:/opt/atlassian/jira/atlassian-jira/WEB-INF/lib/
#进入容器修改jar包权限
docker exec -it jira bash
chmod 755 /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/mysql-connector-java-5.1.49-bin.jar
#退出容器
exit
#重启容器
docker restart jira


4、web页面设置属性


访问8080端口

选择语言

选择《我将设置它自己》

线上选择其他数据库

填写数据库配置

申请许可证关键字,点击「生成Jira试用许可证」

需要注册账号,注册完之后,选择相关信息,点击「Generate License」,会自动跳回到这个页面并填充信息,

接着点击「下一步」

等待一会就进入设置管理员页面,填入一些信息即可,接着「下一步」点击「完成」即完成设置


注意:收费的还未破解


三、gitlab配置jira-代码push后jira自动显示注释,Merged Master后自动修改jira状态


点击要配置的项目->Settings->Integrations->Jira


然后填充里边信息,主要是下面两个


  1. Web URL:指向Jira实例web接口的基本URL,该接口被链接到这个GitLab项目。例如,https://jira.example.com

  2. Transition ID:这个是jira工作流程的流程id


流程id可以访问:http://*.*.*.*:8080/rest/api/2/issue/FTBQ-5/transitions

FTBQ-5:是你jira创建的任何一个问题的号


此时会返回

{
"expand": "transitions",
"transitions": [{
"id": "11",
"name": "待办",
"to": {
"self": "http://:8080/rest/api/2/status/10000",
"description": "",
"iconUrl": "http://106.53.239.230:8080/",
"name": "待办",
"id": "10000",
"statusCategory": {
"self": "http://:8080/rest/api/2/statuscategory/2",
"id": 2,
"key": "new",
"colorName": "blue-gray",
"name": "待办"
}
}
}, {
"id": "21",
"name": "处理中",
"to": {
"self": "http://:8080/rest/api/2/status/3",
"description": "此问题正在被经办人积极处理。",
"iconUrl": "http://106.53.239.230:8080/images/icons/statuses/inprogress.png",
"name": "处理中",
"id": "3",
"statusCategory": {
"self": "http://:8080/rest/api/2/statuscategory/4",
"id": 4,
"key": "indeterminate",
"colorName": "yellow",
"name": "处理中"
}
}
}, {
"id": "31",
"name": "完成",
"to": {
"self": "http://:8080/rest/api/2/status/10001",
"description": "",
"iconUrl": "http://:8080/",
"name": "完成",
"id": "10001",
"statusCategory": {
"self": "http://:8080/rest/api/2/statuscategory/3",
"id": 3,
"key": "done",
"colorName": "green",
"name": "完成"
}
}
}]
}


json中的:"id": "31"就是流程id填入Transition ID即可,多个可用逗号(,)隔开


具体可以看gitlab文档:

https://docs.gitlab.com/ce/user/project/integrations/jira.html


四、验证


 1、我们在jira创建问题(FTBQ-2为例)



然后idea修改代码commit时备注填写以问题号开头,然后push

到jira中的效果就是


2、我们再看Transition ID的作用


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

  1. Resolves PROJECT-1

  2. Closes PROJECT-1

  3. Fixes PROJECT-1


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

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

gitlab官网文档:

https://docs.gitlab.com/ce/user/project/integrations/jira.html


jira连接数据库文档:


https://confluence.atlassian.com/adminjiraserver/connecting-jira-applications-to-a-database-938846850.html

文章转载自鲁班同学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论