Jira对接Prism开发API指南
部门
证系统运维团队
文档制作人
陈刚()
时间
2017-04-05
版本
第一版
目录
目的... 1
通例:... 1
认证... 2
新建版本单... 2
获取指定版本单的发布单信息... 3
目的
为了提升工作效率,打通jira和prism之间的联系,,让软件项目管理人员可以在jira上新建版本单,并跟踪发布进度,特在prism上制作相关API供jira调用。
通例:l Prism的web址会因环境不同或构架变更而发生变更,jira端须提供自定义prism的api网址。
l 文档仅以根目录演示相关url。
l 演示代码主要以python为主,如果为javascript,会特别说明。
l jira端可以自行构造认证表单,将获取的token保留。或是提供用户自行配置token。
认证认证
成功
失败
URL
/api/api-token-auth/
请求方法
POST
请求参数
Username, password
状态码
200
400
返回消息
Json对象,
具体消息见demo
Json对象,
具体消息见demo
Demo:
url = "http://127.0.0.1:8000/api/api-token-auth/"
payload = {‘username‘: ‘kevsin‘, ‘password‘: ‘xxx‘}
r = requests.post(url, data=payload)
print r.status_code #成功200 失败 400
print r.text
#成功输出:{"token":"d92bbea2a4b3bb1235badf87490ba7c980e9ebab"}
#失败输出:{"non_field_errors":["无法使用提供的认证信息登录。"]}
新建版本单
新建版本单
成功
失败
URL
/api/versionpool/
请求方法
POST
请求参数
Name, site_name
状态码
201
400
返回消息
Json对象,
具体消息见demo
Json对象,
具体消息见demo
***为保证prism内版本单的名单唯一性,Prismw会自动为jira传过来的版本单号加上项目名称,以此作为prism的版本单名称
Demo:
url = "http://127.0.0.1:8000/api/versionpool/"
mytoken="d92bbea2a4b3bb1235badf87490ba7c980e9ebab"
headers={‘Authorization‘: ‘Token {}‘.format(mytoken)}
payload = {‘name‘: ‘1.78.5‘, ‘site_name‘: ‘SIS-OMM‘ }
r = requests.post(url, data=payload, headers=headers)
print r.status_code #成功200 失败 400
print r.text
#成功输出:{"create_user":"kevin","message":"创建版本单成功!","result":"success","name":"SIS-OMM-1.78.5"}
#site_name不存在时输出:{"create_user":"kevin","message":"项目名不存在!","result":"failed","name":"SIS-OwMM-1.78.5"}
#已有相同版本单时输出:{"create_user":"kevin","message":"已存在相同版本单","result":"failed","name":"SIS-OMM-1.78.5"}
以下提供一个采用vue.js 2的前端框架时,创建版本单的javascript代码供参考:
submit: function() {
var selected = this.selected; // 这里才是你的表单数据
var versionNo = this.versionNo; // 这里才是你的表单数据
var headers = {}
var data = {}
data.name = versionNo //塞入post数据
data.site_name = selected //塞入post数据
headers.Authorization = ‘Token ‘ + this.token; //设定html的header头信息
this.$http.post(this.apiVersionListUrl, data, {headers: headers}) //发送post请求
.then(function(response){
this.result = this.versionNo + "版本新增成功!"
console.log("right!")
}, function(response){
console.log(response);
console.log("wrong!");
});
获取指定版本单的发布单信息
获取指定版本单的发布单
成功
失败
URL
/api/deploypool/
请求方法
GET
请求参数
Site_name, version_name
状态码
200
200
返回消息
返回见demo
返回为空列表[]
Demo:
url = "http://127.0.0.1:8000/api/deploypool/?site_name=SIS-M&version_name=SIS-M-1.78.5"
r = requests.get(url)
print r.text
#如果传递参数正确且相关版本单内有发布单,输出如下:
[
{
"id": 140, //发布单ID
"name": "20170308163803BR", //发布单名称
"site_name": "SIS-OMM", //发布单所属项目
"version_name": "SIS-OMM-1.78.5", //发布单所属版本单
"app_name": "SIS-OMM-JTC-APP-STATIC", //发布单所属组件
"order_no": 4, //发布单顺序
"deploy_status": "BUILD", //发布单状态
"deploy_progress": null, //发布单部署进度
"create_user": "kevin", //操作用户
"change_date": "2017-03-08T16:38:04" //操作时间
},
{
"id": 136,
"name": "20170302144843TA",
"site_name": "SIS-OMM",
"version_name": "SIS-OMM-1.78.5",
"app_name": "SIS-OMM-SQL",
"order_no": 8,
"deploy_status": "DR",
"deploy_progress": "待发布",
"create_user": "kevin",
"change_date": "2017-03-06T15:16:13"
}
]
开发API完成,写个文档