当前位置: 首页 > news >正文

jira创建条目rest实用脚本

最近在搞crash崩溃分析,直接把解析到的信息录入jira系统进行跟踪;

经历了多次碰壁后终于调通,现记录一下

实用json请求脚本如下:

{"fields":{"project":{"id":"10945"},"issuetype":{"id":"10103"},"summary":"%s","description":"%s","components":[{"id":"16001"}],"versions":[{"id":"16600"}],"customfield_12108":{"id":"12972"},"customfield_12109":{"id":"12974"},"priority":{"id":"10102"},"security":{"id":"10600"},"assignee":{"name":"%s"}}}

两个注意点:

1、代码里%s  是我这边他要替换的字符串;

2、上面的id值需要自己抓包来确定,每个project各id值是不一样的,

      一般抓包工具是Charles和Fiddler;

jira建单官方示例如下:

The Jira Cloud platform REST API

// The payload definition using the Jackson library
JsonNodeFactory jnf = JsonNodeFactory.instance;
ObjectNode payload = jnf.objectNode();
{ObjectNode fields = payload.putObject("fields");{ObjectNode assignee = fields.putObject("assignee");{assignee.put("id", "5b109f2e9729b51b54dc274d");}ArrayNode components = fields.putArray("components");ObjectNode components0 = components.addObject();{components0.put("id", "10000");}fields.put("customfield_10000", "09/Jun/19");fields.put("customfield_20000", "06/Jul/19 3:25 PM");ArrayNode customfield_30000 = fields.putArray("customfield_30000");customfield_30000.add("10000");customfield_30000.add("10002");fields.put("customfield_40000", "Occurs on all orders");fields.put("customfield_50000", "Could impact day-to-day work.");fields.put("customfield_60000", "jira-software-users");ArrayNode customfield_70000 = fields.putArray("customfield_70000");customfield_70000.add("jira-administrators");customfield_70000.add("jira-software-users");ObjectNode customfield_80000 = fields.putObject("customfield_80000");{customfield_80000.put("value", "red");}fields.put("description", "Order entry fails when selecting supplier.");fields.put("duedate", "2019-03-11");fields.put("environment", "UAT");ArrayNode fixVersions = fields.putArray("fixVersions");ObjectNode fixVersions0 = fixVersions.addObject();{fixVersions0.put("id", "10001");}ObjectNode issuetype = fields.putObject("issuetype");{issuetype.put("id", "10000");}ArrayNode labels = fields.putArray("labels");labels.add("bugfix");labels.add("blitz_test");ObjectNode parent = fields.putObject("parent");{parent.put("key", "PROJ-123");}ObjectNode priority = fields.putObject("priority");{priority.put("id", "20000");}ObjectNode project = fields.putObject("project");{project.put("id", "10000");}ObjectNode reporter = fields.putObject("reporter");{reporter.put("id", "5b10a2844c20165700ede21g");}ObjectNode security = fields.putObject("security");{security.put("id", "10000");}fields.put("summary", "Main order flow broken");ObjectNode timetracking = fields.putObject("timetracking");{timetracking.put("originalEstimate", "10");timetracking.put("remainingEstimate", "5");}ArrayNode versions = fields.putArray("versions");ObjectNode versions0 = versions.addObject();{versions0.put("id", "10000");}}ObjectNode update = payload.putObject("update");{ArrayNode worklog = update.putArray("worklog");ObjectNode worklog0 = worklog.addObject();{ObjectNode add = worklog0.putObject("add");{add.put("started", "2019-07-05T11:05:00.000+0000");add.put("timeSpent", "60m");}}}
}// Connect Jackson ObjectMapper to Unirest
Unirest.setObjectMapper(new ObjectMapper() {private com.fasterxml.jackson.databind.ObjectMapper jacksonObjectMapper= new com.fasterxml.jackson.databind.ObjectMapper();public <T> T readValue(String value, Class<T> valueType) {try {return jacksonObjectMapper.readValue(value, valueType);} catch (IOException e) {throw new RuntimeException(e);}}//这里可以打印自己请求的jsonpublic String writeValue(Object value) {try {return jacksonObjectMapper.writeValueAsString(value);} catch (JsonProcessingException e) {throw new RuntimeException(e);}}
});// This code sample uses the  'Unirest' library:
// http://unirest.io/java.html
HttpResponse<JsonNode> response = Unirest.post("https://your-domain.atlassian.net/rest/api/2/issue").basicAuth("email@example.com", "<api_token>").header("Accept", "application/json").header("Content-Type", "application/json").body(payload).asJson();System.out.println(response.getBody());

这里可以打印自己发送的json脚本

   //这里可以打印自己请求的jsonpublic String writeValue(Object value) {System.out.println("writeValue=====" + value);try {return jacksonObjectMapper.writeValueAsString(value);} catch (JsonProcessingException e) {throw new RuntimeException(e);}}

在这里给自己做个笔记

http://www.lryc.cn/news/138470.html

相关文章:

  • 红外/可见光图像配准融合
  • 更高效稳定 | 基于ACM32 MCU的编程直流电源应用方案
  • postgresql创建一个只读账户指定数据库
  • CSDN编程题-每日一练(2023-08-25)
  • 前端面试:【前端工程化】构建工具Webpack、Parcel和Rollup
  • 大型企业是否有必要进行数字化转型?
  • 05有监督学习——神经网络
  • JavaWeb_LeadNews_Day7-ElasticSearch, Mongodb
  • redux中间件理解,常见的中间件,实现原理。
  • 麒麟系统上安装 MySQL 8.0.24
  • vue 展开和收起
  • 限制立方样条(RCS)中的P for overall和P for nonlinear的计算
  • vue3+ts引入echarts并实现自动缩放
  • Compressor For Mac强大视频编辑工具 v4.6.5中文版
  • maven工程的目录结构
  • 5.1 webrtc线程模型
  • 【Linux网络】Cookie和session的关系
  • android 硬编码保存mp4
  • gitlab合并分支
  • 手撕 `np.transpose` : 三维数组的循环转置
  • 计算机竞赛 基于Django与深度学习的股票预测系统
  • CSS 小技能(一):HTML 两个图片竖着平铺、设置图片点击、设置滚动条颜色
  • 【论文阅读】CONAN:一种实用的、高精度、高效的APT实时检测系统(TDSC-2020)
  • P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布
  • 基于Android水果蔬菜果蔬到家商城系统 微信小程序uniAPP的开发与实现
  • 【Python】从入门到上头—Python基础(2)
  • leetcode刷题之283:移动零
  • 【Spring Boot】SpringBoot和数据库交互: 使用Spring Data JPA
  • 自动化部署及监测平台基本架构
  • 基于NXP i.MX 6ULL核心板的物联网模块开发案例(1)