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); //关闭
}
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;
}
修改batchedithtml.php、edithtml.php、all.html.php页面,每一个页面添加jira项目名称
最终页面实现以下内容,每一个项目名称与jira中的项目名称关联
7、实现结果如下,禅道中显示的bug皆是jira系统中的bug
公司使用jira作为bug管理系统已有N年历史,测试部最近使用禅道作为任务管理系统,老大的想法是把禅道与jira关联起来,即任务情况与bug关联。最开始的想法是在禅道中添加代码,直接读取jira的bug表(jiraissue),取出数据直接显示,无奈某部门主管说jira是公司花钱买的受权,价格很高,禁止第三方未受权连接,不给权限。好吧,另想办法,如此实现。有些细小改动没有写在这里。