[本文出自天外归云的博客园]

通过python中的jira类我们可以方便的操作jira,获取一些我们想要再加工的信息。

这里举例,用html页面的形式展示分派给组内每个人的任务(未完成的、正在进行中的)列表。

第一步,安装jira的python库:

pip install jira

第二步,获取组内每个人的任务(未完成的、正在进行中的)并写到本地html文件中,代码如下:

# -*- coding: utf-8 -*-
from jira import JIRA
import sys,os
import webbrowser
sys.path.append("libs") #登录jira
def login_jira(username,password):
jira = JIRA("http://jira.ms.netease.com",basic_auth=(username,password))
return jira def generate_tasks_distribution(jira,testers):
with open("distribution.html","w") as f:
f.write("<html><head><meta charset=\"gbk\"><title>进行中的任务统计表</title>")
f.write("<link rel=\"stylesheet\" href=\"https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css\">")
f.write("<script src=\"https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js\"></script>")
f.write("<script src=\"https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js\"></script></head><body>")
for tester in testers:
jql = '测试人员='+tester+' AND status not in (Resolved, Closed, Done) ORDER BY priority DESC, created DESC'
issues_in_progress = jira.search_issues(jql)
count = len(issues_in_progress)
f.write("<br/>")
f.write("<table class=\"table table-hover\">")
f.write("<caption style='text-align:center;'><h1>"+testers[tester]+"</h1>正在进行中的任务有"+str(count)+"个</caption>")
f.write("<thead><tr><th>序号</th><th>标题</th><th>创建时间</th></tr></thead><tbody>")
i = 0
for issue in issues_in_progress:
key = issue.key
url = "http://jiraUrl/"+key
summary = issue.fields.summary
created = (issue.fields.created).split("T")[0]
content = "<tr><td>"+str(i+1)+"</td><td>"
content += "<a href='"+url+"' target='_blank'>"+summary+"</a>"+"</td>"
content += "<td><font color='red'> 创建时间:"+created+"</font></td></tr>"
f.write(content)
i += 1
f.write("</tbody></table>")
f.write("</body></html>") if __name__ == '__main__':
username = "用户名"
password = "密码"
testers = {"username1":"组员1的名字", "username2":"组员2的名字", "username3":"组员3的名字", "username4":"组员4的名字", "username5":"组员5的名字"}
jira = login_jira(username,password)
generate_tasks_distribution(jira,testers)
path = os.path.dirname(os.path.abspath(__file__))
url = os.path.join(path,'distribution.html')
webbrowser.open(url)

运行后会在当前目录生成一个distribution.html文件并调用默认浏览器打开,这里用了bootstrap的表格展示。

浏览器中打开html文件就可以看到展示效果,会列出组内每个成员当前正在进行时的任务列表,包含序号、标题(点击可跳转到对应jira)、创建日期。

代码中需替换的部分有:

jql:其中的status可能各个公司制定的都不同,需要替换成实际使用的status,在jira里可以自动生成jql查询语句;

jiraUrl:替换成对应公司的jira的url中不包含jira key的部分;

username:替换成登录公司jira的账号用户名;

password:替换成登录公司jira的账号密码;

testers:其中对应的是组员,key值写的是jira中组员的名字,value值写的是组员对应的真名。

JIRA python篇之展示多人未完成任务列表的更多相关文章

  1. JIRA python篇之统计产品尚未解决的bugs

    [本文出自天外归云的博客园] 通过python中的jira类我们可以方便的操作jira,获取一些我们想要再加工的信息. 一些通过JIRA的JTL查询语句不方便直接搜索的过滤条件可以通过JIRA的pyt ...

  2. GitHub 上适合新手的开源项目(Python 篇)

    作者:HelloGitHub-卤蛋 随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中.为什么这么多人学 Python ?我要喊出那句话了:"人生苦短,我用 Py ...

  3. 给缺少Python项目实战经验的人

    我们在学习过程中最容易犯的一个错误就是:看的多动手的少,特别是对于一些项目的开发学习就更少了! 没有一个完整的项目开发过程,是不会对整个开发流程以及理论知识有牢固的认知的,对于怎样将所学的理论知识应用 ...

  4. 阿里云物联网平台体验(树莓派+Python篇)

    阿里云物联网平台体验(树莓派+Python篇) 虽然对阿里云物联网平台比较熟悉了,从一开始就有幸参与了飞凤平台(Link Develop 一站式开发平台的前身)的一些偏硬件接入的工作.但是同时也见证了 ...

  5. C++混合编程之idlcpp教程Python篇(9)

    上一篇在这 C++混合编程之idlcpp教程Python篇(8) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相比,工程PythonTutorial7中除了四个文件PythonTu ...

  6. C++混合编程之idlcpp教程Python篇(8)

    上一篇在这 C++混合编程之idlcpp教程Python篇(7) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相似,工程PythonTutorial6中,同样加入了四个文件:Pyt ...

  7. C++混合编程之idlcpp教程Python篇(7)

    上一篇在这 C++混合编程之idlcpp教程Python篇(6) 第一篇在这 C++混合编程之idlcpp教程(一) 与PythonTutorial4工程相似,工程PythonTutorial5中,同 ...

  8. C++混合编程之idlcpp教程Python篇(6)

    上一篇在这 C++混合编程之idlcpp教程Python篇(5) 第一篇在这 C++混合编程之idlcpp教程(一) 工程PythonTutorial4中加入了四个文件:PythonTutorial4 ...

  9. C++混合编程之idlcpp教程Python篇(5)

    上一篇在这  C++混合编程之idlcpp教程Python篇(4) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相似,工程PythonTutorial3中,同样加入了三个文件:Py ...

随机推荐

  1. 上海租房找房建议及条件,上海IT行业开发常见公司的位置地点

    上海租房,找房条件 以2号地铁线为中心,优先选择(回家方便,重点!),交通设施较集中地铁:2,3,4 区:普陀区,静安区,长宁区,闸北区,浦东新区,闵行区,徐汇区 路:镇坪路,威宁路,娄山关路,中山公 ...

  2. CMFCPropertyGridProperty用法

    MFCPropertyGridCtrl 是VC 2008 pack中的控件类. CMFCPropertyGridProperty这个控件类中的属性值类类. 针对修改属性后,对属性值改变的消息处理: 方 ...

  3. 【MAVEN】搜索错误“Index downloads are disabled,search results may be incomplete”

    出现上面这个错误,需要将Maven的索引下载到本地. 应用后,在Window -> Show View -> Other -> Maven -> Maven Repositor ...

  4. 【java】自定义异常类

    目录结构: contents structure [+] 为什么需要自定义异常类 自定义异常的方式 实例 日常日志 一,为什么需要自定义异常类 当java中的异常类型没有能够满足我们所需的异常的时候就 ...

  5. libevent的问题

    问题: nginx error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: N ...

  6. 用C写有面向对象特点的程序

    比如在一个项目中,有大量的数据结构,他们都是双向链表,但又想共用一套对链表的操作算法,这怎么做到呢,C中又没有C++中的继承,不然我可以继承一父(类中只有两个指针,一个向前一个向后),而其算法可以写在 ...

  7. python ipython spyder

    ipython usage: ipython qtconsole --pylab inline anacond usage: 1. spyder 1. source ~/anacond/bin/act ...

  8. HttpWebRequest、HttpWebResponse、HttpClient、WebClient等http网络访问类的使用示例汇总

    工作中长期需要用到通过HTTP调用API以及文件上传下载,积累了不少经验,现在将各种不同方式进行一个汇总. 首先是HttpWebRequest: /// <summary> /// 向服务 ...

  9. Activity 变成对话框,然后再隐藏?

    由于继续需要做一些无感操控的工作,之前也记录了下利用悬浮窗的方法.今天突然发现原来activity可以直接嗯嗯嗯啊. 首先我在AndroidManifest里给activity添加了如下一行: and ...

  10. [转]同步对象Event的用法

    同步对象Event的用法  首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,线程锁定方面.  CreateEvent函数功能描述:创建或打开一个命名的或无名的事 ...