Итак, я в основном пишу программу, которая периодически добавляет комментарии к заявке JIRA. Проблема, с которой я здесь сталкиваюсь, заключается в том, что, когда я пытаюсь добавить журнал изменений в качестве комментария, он создает несколько комментариев с каждым журналом изменений для этого тикета, но я хочу напечатать только последний журнал изменений.
for link_2 in data:
for history in jira.issue(link_2[1], expand = 'changelog').changelog.histories:
for item in history.items:
if item.field == 'status':
print((datetime.utcnow() - datetime.strptime(history.created,'%Y-%m-%dT%H:%M:%S.%f+0000')).total_seconds() / 60)
print('Date:' + history.created + ' From:' + item.fromString + ' To:' + item.toString)
Когда я распечатываю это, он показывает каждый журнал изменений, чтобы дополнительно добавить к этому.,
for issues in data:
if str(jira.issue(issues[1]).fields.status) in ('To Do','Grooming','Testing in QA'):
#15 Minutes response threshold is given for P1
if str(jira.issue(issues[1]).fields.priority == 'P1') and int((datetime.today() - issues[2]).total_seconds() / 60) > 15:
#print("its over", links[1])
cur.execute("select team_id,user_name,escalation_level from escalation_information where escalation_level = '1'")
esc_1 = cur.fetchall()
jira.add_watcher(issues[1], esc_1[0][1])
#jira.add_comment(issues[1], 'This is an automated reminder. It has been ' + str(round((datetime.today() - issues[2]).total_seconds() / 60)) + ' minutes since a change has been made to this ticket.')
for history in jira.issue(issues[1], expand = 'changelog').changelog.histories:
for item in history.items:
if item.field == 'status':
jira.add_comment(issues[1], 'This is an automated reminder. It has been ' + str(round((datetime.utcnow() - datetime.strptime(history.created,'%Y-%m-%dT%H:%M:%S.%f+0000')).total_seconds() / 60)) + ' minutes since the status of the ticket changed From : ' + item.fromString + ' To : ' + item.toString)
#120 Minutes Response threshold is given for P2
elif str(jira.issue(issues[1]).fields.priority == 'P2') and int((datetime.today() - issues[2]).total_seconds() / 60) > 120:
cur.execute("select team_id,user_name,escalation_level from escalation_information where escalation_level = '1'")
esc_2 = cur.fetchall()
jira.add_watcher(issues[1], esc_2[0][1])
jira.add_comment(issues[1], 'This is an automated reminder. It has been ' + str(round((datetime.today() - issues[2]).total_seconds() / 60)) + ' minutes since a change has been made to this ticket.')
#720 Minutes response threshold is given for P3 and P4
elif str(jira.issue(issues[1]).fields.priority in ('P3','P4')) and int((datetime.today() - issues[2]).total_seconds() / 60) > 720:
cur.execute("select team_id,user_name,escalation_level from escalation_information where escalation_level = '1'")
esc_3 = cur.fetchall()
jira.add_watcher(issues[1], esc_3[0][1])
jira.add_comment(issues[1], 'This is an automated reminder. It has been ' + str(round((datetime.today() - issues[2]).total_seconds() / 60)) + ' minutes since a change has been made to this ticket.')
else:
print("Job Completed Succesfully")
else:
print(issues[1] + ' is in "' + str(jira.issue(issues[1]).fields.status) + '" state.')
Это то, что я делаю, проблема в том, что это также размещение комментариев к каждому билету Jira, который я передаю. Я. в основном пытается отправить время с момента последнего изменения статуса в указанный c тикет на основании некоторых условий. Я новичок в этом, я делаю некоторые логические ошибки здесь. Пожалуйста, помогите мне выяснить, что я делаю неправильно.
Это вывод, который я получаю, я пытаюсь добавить только последний комментарий, который появляется каждый раз, когда я запускаю код.