package util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
//通过Java获取jira上的任务
public class TestJira {
    public static void main(String[] args) throws IOException {
        //jql中的空格需要用%20替换

//jql排序要放在and条件之后加%20order%20by%20resolutiondate
//jql查询默认只查询50条,如果想查询更多或者更少的话需要在条件最好加&maxResults=1,如果有order by要放在order by之后
        //查询还未完成开发并且已经超期的任务
        String overdueJira = initIssues("due<now()%20and%20resolution%20is%20EMPTY%20and%20project=testJira");
        //project=testJira%20AND%20status=待集成,其中待集成需要通过url编码转换一下。project代表项目名
        String completeJira = initIssues("project=testJira%20AND%20status=%E5%BE%85%E9%9B%86%E6%88%90");
        System.out.println("===========超期jira"+overdueJira+"个=============");
        System.out.println("===========完成jira"+completeJira+"个=============");
    }
    static String uri = "jira地址";
    static String user = "jira用户名";
    static String pwd = "jira密码";
    static String osname = System.getProperty("os.name").toLowerCase();
    //通过cmd运行
    private static String executeCmd(String command) throws IOException {
        StringBuffer result = new StringBuffer();
        Process process = null;
        InputStream is = null;
        BufferedReader br = null;
        String line = null;
        String num = "0";
        try {
            //windows平台下用cmd发生请求,windows需要安装Cygwin
            if (osname.indexOf("windows") >= 0) {
                process = new ProcessBuilder("cmd.exe", "/c", command).start();
            } else {
                //linux平台下执行请求
                process = new ProcessBuilder("/bin/sh", "-c", command).start();
            }
            is = process.getInputStream();
            br = new BufferedReader(new InputStreamReader(is, "UTF-8"));

while ((line = br.readLine()) != null) {
                result.append(line);
            }
            String info = result.toString();
            info = info.substring(info.indexOf("no-transform")+12, info.length());
            JSONObject parseObject = JSONObject.parseObject(info);
            num = parseObject.getString("total");//获取任务数
            JSONArray issues = parseObject.getJSONArray("issues");//获取任务详情
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            //关闭连接
            br.close();
            process.destroy();
            is.close();
        }
        return num;
    }
    //根据条件查询数据
    public static String initIssues(String jql) throws IOException{
        //可以在cmd直接运行以下命令
        //curl -D- -u jiar用户名:jira密码 -X GET -H "Content-Type: application/json" "jira地址/rest/api/2/search?jql=due<now()%20and%20resolution%20is%20EMPTY%20and%20project=testJira"
        String command = "curl -D- -u " + user + ":" + pwd + " -X GET -H \"Content-Type: application/json\" \"" + uri + "/rest/api/2/search?jql=" + jql + "\"";
        String num = executeCmd(command);
        return num;
    }
}

java获取jira上的任务相关推荐

  1. java获取屏幕上某坐标点的颜色

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java获取屏幕上某坐标点的颜色.通过先获取屏幕截图,再获取坐标点颜色. public Color getScreenPixel(int x, i ...

  2. linux java读取文件夹下文件名,Java获取Linux上指定文件夹下所有第一级子文件夹...

    说明:需要只获得第一级文件夹目录 package com.sunsheen.jfids.studio.monitor.utils; import java.io.BufferedReader; imp ...

  3. java 获取服务器上文件,java获取远程服务器上的文件

    java获取远程服务器上的文件 内容精选 换一换 已成功登录Java性能分析.待安装Guardian的服务器已开启sshd.待安装Guardian的服务器已安装JRE,JRE版本要求为Huawei J ...

  4. java获取服务器上指定文件,java 读取服务器上文件

    java 读取服务器上文件 [2021-02-04 10:02:14]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...

  5. java获取ajax上传的文件,Java使用Ajax异步上传文件

    相关代码示例: html代码片段: 名称 class="layui-input"> 描述 文件 请选择配置文件 立即提交 重置 js代码片段: //上传配置文件 $(&quo ...

  6. java获取服务器上的图片进行拼接

    1.从服务器下载图片保存到本地 package com.example.demo.util;import java.io.File; import java.io.FileOutputStream; ...

  7. java获取方法上的注解_Spring:使用Spring AOP时,如何获取目标方法上的注解

    当使用spring AOP时,判断目标方法上的注解进行相关操作,如缓存,认证权限等 自定义注解 packagecom.agent.annotation;importjava.lang.annotati ...

  8. java获取参数上的注解_java-如何获取带注释的方法参数及其注释

    在我的应用程序中,我有一些方法的参数带有一些注释.现在,我想编写Aspect,使用来自注释属性的信息对带注释的参数进行一些预处理.例如,方法: public void doStuff(Object a ...

  9. java获取当前上一周、上一月、上一年的时间

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calend ...

最新文章

  1. 《Java遗传算法编程》—— 1.5 生物进化
  2. SAP导出Excel错点拒绝处理
  3. mysql查询表名匹配只有字母的_MySQL按某些匹配字母查询表
  4. PID控制器改进笔记之三:改进PID控制器之正反作用
  5. jQuery 1.3 正式版发布
  6. stm32f407 6路串口dma如何配置_stm32cubeMX学习十、扫码模块程序开发(基于正点原子STM32F407开发板)...
  7. typecho支持html,为Typecho文章增加HTML标签支持
  8. python列表用来有序存放一组_Python期末习题练习
  9. java模拟时钟课程设计_Java课程设计时钟图形模拟
  10. matlab gui 进度条,MATLAB GUI 之自制进度条
  11. python-破译密码
  12. 畅购商城项目v1-环境搭建
  13. html5分镜头脚本范例,(最新整理)分镜头脚本范本
  14. 京东商品数据分析,教你一键分析数据
  15. Py函数直接传入root是啥意思_阿里云python课程笔记(四):函数amp;类和对象
  16. 微信隐藏功能,你们快来瞧一瞧
  17. 苹果在高端手机市场碾压安卓手机,国产旗舰不入前十
  18. 网络监控系统安装的六种传输方式
  19. linux ssh 终端退格键,退格键,Tab,Del和箭头键在终端中不起作用(使用ssh)
  20. python读取ymal文件

热门文章

  1. 使用微信PC端的截图dll库实现微信截图功能(C++ Builder实现)
  2. 王者荣耀服务器维护七月,《王者荣耀》7.28不停服维护更新攻略教程 7月28日更新公告...
  3. 阿里云云效平台使用——Windows上使用阿里云云效(RDC)Git拉取代码
  4. c语言人民邮电出版社课后答案,C语言程序设计教程(人民邮电出版社) 课后习题解答6-10...
  5. 设计模式之适配器模式--简单实例分析
  6. 字符串与数字相互转化
  7. java mifare_java – NTAG212 Mifare Ultralight与身份验证
  8. 央视《对话》:家长课堂
  9. 网页中HTML代码如何实现字体删除线效果
  10. 如何给无光驱无软驱无USB启动的老笔记本装系统