开源版禅道与jira bug关联

1、修改禅道project表结构,添加jiraproject列,用于存储jira项目名称

2、访问jira,保留cookie

jira接口:http://jira.test.com:8080/rest/auth/1/session?os_username=ali&os_password=xxxxxx

public function jiraLogin(){
        //header("Content-Type:text/html;charset=utf-8");
        $curl = curl_init();
        $cookie_jar = '/zentaopms/jiracookie/cookie.txt';
        curl_setopt($curl, CURLOPT_URL,'http://jira.test.com:8080/rest/auth/1/session?os_username=ali&os_password=xxxxxx');//这里写上处理登录的界面
        //curl_setopt($curl, CURLOPT_POST, 1); //post提交数据
        //curl_setopt($curl, CURLOPT_POSTFIELDS, $request); //传递数据
        curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar); //把返回来的cookie信息保存在$cookie_jar文件中
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设定返回的数据是否自动显示
        curl_setopt($curl, CURLOPT_HEADER, false); //设定是否显示头信息
        curl_setopt($curl, CURLOPT_NOBODY, false); //设定是否输出页面内容
        curl_exec($curl);
        //var_dump($cookie_jar);
        $ch_error = curl_error($curl);
        if ($ch_error) {
            echo "cURL Error:" . $ch_error;
            echo 'jira login failed';
        }
        curl_close($curl); //关闭
    }

3、携带cookie搜索bug

jira接口:http://jira.test.com:8080/rest/api/2/search

    public function jirabugGet($jiraproject){
        //header("Content-Type:text/html;charset=utf-8");
        $lastFriday = date("Y-m-d H:i",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1-3,date("Y")));
        $url = "http://jira.test.com:8080/rest/api/2/search?jql=project=".urlencode("'" . $jiraproject . "'  AND issuetype = 1  AND updated >= '". $lastFriday . "' ORDER BY priority DESC");
        $cookie_jar = '/zentaopms/jiracookie/cookie.txt';
        //var_dump($cookie_jar);
        $curl2 = curl_init();
        curl_setopt($curl2, CURLOPT_URL, $url);//登陆后要从哪个页面获取信息
        curl_setopt($curl2, CURLOPT_HEADER, false);
        curl_setopt($curl2, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl2, CURLOPT_COOKIEFILE, $cookie_jar);
        $content = curl_exec($curl2);
        $arr=json_decode($content,true);
        curl_close($curl2);
        return $arr;
    }

4、修改module/bug/module.php、module/project/module.php

开源版禅道与jira bug关联_第1张图片开源版禅道与jira bug关联_第2张图片

开源版禅道与jira bug关联_第3张图片

5、project/view目录下

修改batchedithtml.php、edithtml.php、all.html.php页面,每一个页面添加jira项目名称

6、修改module/project/model.php

开源版禅道与jira bug关联_第4张图片

最终页面实现以下内容,每一个项目名称与jira中的项目名称关联

开源版禅道与jira bug关联_第5张图片

 

7、实现结果如下,禅道中显示的bug皆是jira系统中的bug

开源版禅道与jira bug关联_第6张图片

开源版禅道与jira bug关联_第7张图片

最后,说点题外话,我什么要这么做

       公司使用jira作为bug管理系统已有N年历史,测试部最近使用禅道作为任务管理系统,老大的想法是把禅道与jira关联起来,即任务情况与bug关联。最开始的想法是在禅道中添加代码,直接读取jira的bug表(jiraissue),取出数据直接显示,无奈某部门主管说jira是公司花钱买的受权,价格很高,禁止第三方未受权连接,不给权限。好吧,另想办法,如此实现。有些细小改动没有写在这里。

你可能感兴趣的:(阿狸随笔)