繁体   English   中英

自动月报 Python-Jira

[英]Automated monthly report Python-Jira

一个小小的要求。 我是 Python 和 Jira 的大三学生,但我想学习 :) 我有一个同事的代码,他离开了公司,用于自动报告过去 12 个月的事件数量! 我想要的是 2020 年事件自动月度报告的数量。您可以在下面找到代码。 我必须改变什么? 谢谢!

#!/usr/bin/python3
import requests
from datetime import date
import datetime
import calendar
from utils import jira_utils, table_utils


# Method section

DEFAULT_NUMBER_OF_MONTHS= 12

def create_data_table(month):
    header_row = table_utils.create_start_of_data_table_monthly_report(DEFAULT_NUMBER_OF_MONTHS)
    data_rows=create_data_row('P1', month)
    data_rows+=create_data_row('P2', month)
    data_rows+=create_data_row('P3', month)

    #data_rows+=create_data_row('P1, P2, P3', month)
    end_of_table = table_utils.end_table()
    return header_row + data_rows + end_of_table

def create_data_row(priority, month):
    data_row='<tr><th>' + priority + '</th>'
    for i in range (-1*DEFAULT_NUMBER_OF_MONTHS, 0, 1):
        if month:
            time_frame=table_utils.define_time_range_for_monthly_report(i)
        else:
            time_frame=table_utils.define_time_range_for_weekly_report(i)
        row_value = calculate_total_from_jira(priority, time_frame)
        data_cell='<td><p>'+str(row_value)+'</p></td>'
        data_row+=data_cell
    data_row+='</tr>'
    return data_row

def calculate_total_from_jira(priority, time_frame):
    jql_search = calculate_jira_query(time_frame, priority)
    # Authenticate on Jira REST API and fetch results for reporting period
    resp=jira_utils.query_jsd(jql_search)
    return resp['total']

def calculate_jira_query(time_frame, priority):
    start_day = time_frame['repstart']
    end_day = time_frame['repend']
    #print(start_day.strftime('%Y-%m-%d 00:00'))
    #print(end_day.strftime('%Y-%m-%d 23:59'))
    jira_query='{"jql": "project = SM AND issuetype=Incident AND createdDate >= '+ start_day+' AND createdDate <= \\\"'+ end_day +'\\\" AND priority IN ('+priority+') AND resolution NOT IN (Duplicate, Rejected) ORDER BY issuekey","startAt":0, "maxResults":1000, "fields":["total"]}'
    #print(jira_query)
    return jira_query

def number_of_incidents(month):
    data_table = create_data_table(month)
    return data_table

好的,当我这样写时: DEFAULT_NUMBER_OF_MONTHS= int(datetime.datetime.today().strftime("%m"))-1 我收到了 2020 年的正确数据。问题将出在 2020 年 12 月。我会得到“无数据” '在我的报告中。

如何将范围 [1,13] 添加到这部分:对于范围内的 i (-1*DEFAULT_NUMBER_OF_MONTHS, 0, 1):

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM