[英]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.