JIRA python篇之展示多人未完成任务列表
[本文出自天外归云的博客园]
通过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篇之展示多人未完成任务列表的更多相关文章
- JIRA python篇之统计产品尚未解决的bugs
[本文出自天外归云的博客园] 通过python中的jira类我们可以方便的操作jira,获取一些我们想要再加工的信息. 一些通过JIRA的JTL查询语句不方便直接搜索的过滤条件可以通过JIRA的pyt ...
- GitHub 上适合新手的开源项目(Python 篇)
作者:HelloGitHub-卤蛋 随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中.为什么这么多人学 Python ?我要喊出那句话了:"人生苦短,我用 Py ...
- 给缺少Python项目实战经验的人
我们在学习过程中最容易犯的一个错误就是:看的多动手的少,特别是对于一些项目的开发学习就更少了! 没有一个完整的项目开发过程,是不会对整个开发流程以及理论知识有牢固的认知的,对于怎样将所学的理论知识应用 ...
- 阿里云物联网平台体验(树莓派+Python篇)
阿里云物联网平台体验(树莓派+Python篇) 虽然对阿里云物联网平台比较熟悉了,从一开始就有幸参与了飞凤平台(Link Develop 一站式开发平台的前身)的一些偏硬件接入的工作.但是同时也见证了 ...
- C++混合编程之idlcpp教程Python篇(9)
上一篇在这 C++混合编程之idlcpp教程Python篇(8) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相比,工程PythonTutorial7中除了四个文件PythonTu ...
- C++混合编程之idlcpp教程Python篇(8)
上一篇在这 C++混合编程之idlcpp教程Python篇(7) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相似,工程PythonTutorial6中,同样加入了四个文件:Pyt ...
- C++混合编程之idlcpp教程Python篇(7)
上一篇在这 C++混合编程之idlcpp教程Python篇(6) 第一篇在这 C++混合编程之idlcpp教程(一) 与PythonTutorial4工程相似,工程PythonTutorial5中,同 ...
- C++混合编程之idlcpp教程Python篇(6)
上一篇在这 C++混合编程之idlcpp教程Python篇(5) 第一篇在这 C++混合编程之idlcpp教程(一) 工程PythonTutorial4中加入了四个文件:PythonTutorial4 ...
- C++混合编程之idlcpp教程Python篇(5)
上一篇在这 C++混合编程之idlcpp教程Python篇(4) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相似,工程PythonTutorial3中,同样加入了三个文件:Py ...
随机推荐
- C语言学习笔记 (007) - 数组指针和通过指针引用数组元素的方法总结
1.数组指针:即指向数组的指针 那么, 如何声明一个数组指针呢? ]; /*括号是必须写的,不然就是指针数组:10是数组的大小*/ 拓展:有指针类型元素的数组称为指针数组. 2.通过指针引用数组元素的 ...
- 如何使用SetTimer
1.SetTimer定义在那里? SetTimer表示的是定义个定时器.根据定义指定的窗口,在指定的窗口(CWnd)中实现OnTimer事件,这样,就可以相应事件了. SetTimer有两个函数.一个 ...
- Android事件总线还能怎么玩?
作者简介:何红辉,Android工程师,现任职于友盟. 顾名思义,AndroidEventBus是一个Android平台的事件总线框架,它简化了Activity.Fragment.Service等组件 ...
- sqlserver 2008 开启CLR
Common language runtime (CLR) 特性支持在sql server中编写和执行.net的存储过程.触发器.和函数但是要想执行CLR代码,首先要开启CLR特性 1.查看CLR特性 ...
- 【转】Swift 语言的设计错误
Swift 语言的设计错误 在『编程的智慧』一文中,我分析和肯定了 Swift 语言的 optional type 设计,但这并不等于 Swift 语言的整体设计是完美没有问题的.其实 Swift 1 ...
- Redis 的安装与使用(单节点)
Redis 的安装与使用(单节点) 环境:CentOS 6.5 Redis 版本:redis-3.0 (考虑到Redis3.0 在集群和性能提升方面的特性,rc 版为正式版的候选版,而且 很快就出 ...
- GGSN与SGSN简介
GPRS核心网是GPRS(general packet radio service)系统的核心部分,GPRS的作用在于传输IP包,广泛应用于2G的GSM和3G的WCDMA网络. 1.GPRS核心网基本 ...
- 转:zTree树控件入门之checkbox:如何动态设置节点的checkbox选择框启用与禁用状态(chkDisabled)
当一棵树的部分节点根据登入用户角色不同而决定是否启用节点前的checkbox选择框的时候,我们应该如何做呢?也或者如何在页面加载的时候动态根据当前登入用户角色动态切换节点前的checkbox的禁用状态 ...
- curl以cookie的方式登录
curl -o /dev/null -s -w ‘%{time_connect}:%{time_starttransfer}:%{time_total}’ --cookie "UM_dist ...
- SVN配置钩子文件限制提交文件时必须填写更新日志
进入相应SVN仓库hooks目录,编辑文件pre-commit #!/bin/sh REPOS="$1"TXN="$2" SVNLOOK=/usr/bin/sv ...