zoukankan      html  css  js  c++  java
  • 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值写的是组员对应的真名。

  • 相关阅读:
    Java之内部类
    java之对象的前世今生
    java之继承
    java之接口
    何为大学 大学何为?
    丁香般的姑娘
    MySQL创建数据库与创建用户以及授权
    CentOS6.8手动安装MySQL5.6
    linux 修改myql 编码配置等信息参考
    Centos6.8 Mysql5.6 安装配置教程
  • 原文地址:https://www.cnblogs.com/LanTianYou/p/7340736.html
Copyright © 2011-2022 走看看