Запрос о Jira.issue с ​​Changelog в Python - PullRequest
0 голосов
/ 17 февраля 2020

Итак, я в основном пишу программу, которая периодически добавляет комментарии к заявке 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 тикет на основании некоторых условий. Я новичок в этом, я делаю некоторые логические ошибки здесь. Пожалуйста, помогите мне выяснить, что я делаю неправильно.

Это вывод, который я получаю, я пытаюсь добавить только последний комментарий, который появляется каждый раз, когда я запускаю код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...