gitlab集成jira-相关配置

学习思路:

  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

参数解释:

# -d:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# --restart always:失败自动重启
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录

#  $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端口

gitlab集成jira-相关配置_第1张图片

选择语言

gitlab集成jira-相关配置_第2张图片

选择《我将设置它自己》

gitlab集成jira-相关配置_第3张图片

线上选择其他数据库

gitlab集成jira-相关配置_第4张图片

填写数据库配置

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

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

接着点击「下一步」

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

注意:收费的还未破解

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

gitlab集成jira-相关配置_第5张图片

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

gitlab集成jira-相关配置_第6张图片

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

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为例)

gitlab集成jira-相关配置_第7张图片

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

gitlab集成jira-相关配置_第8张图片

到jira中的效果就是

gitlab集成jira-相关配置_第9张图片

2、我们再看Transition ID的作用

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

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

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

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

gitlab集成jira-相关配置_第10张图片

 

gitlab官网文档

jira连接数据库文档

 

公众号主要记录各种源码、面试题、微服务技术栈,帮忙关注一波,非常感谢

你可能感兴趣的:(持续交付流水线)