Можно ли изменить статус проблемы jira с помощью python-jira?

Я хочу изменить статус проблемы jira с python-jira.API python-jira-этоhttp://jira-python.readthedocs.org/en/latest/ .Я не могу найти способ сделать это. Я пытался использовать issue.update(status="Closed").Но это не сработало.Я нашел статус проблемы и рабочий процесс вhttps://developer.atlassian.com/display/JIRADEV/Issue + статус + и + рабочий процесс .Но я все еще не знаю, что делать.Кто-нибудь может мне помочь?

3 ответов


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

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

вам нужно найти свои идентификаторы перехода, а затем использовать его так:

if issue.fields.status in ('open', 'reopened'):
    # Move the ticket from opened to closed.
    jira.transition_issue(ticket, transitionId=131)

Jira-python документы обнаружения и создания переходов здесь.


чтобы изменить статус, вам нужно сделать транзакцию над проблемой. Переход-это просто операция, определенная в "рабочем процессе", и транзитная проблема из одного состояния в другое. Из текущего состояния вы можете выполнить только ограниченный набор переходов, который зависит от "рабочего процесса". Попробуйте использовать следующие функции: Текущее состояние вопроса:

issue = jira.issue('PROJECT-1')
issue.fields.status

статус JIRA: name= 'Fix submitted', id= '10827'

возможные переходы для текущего состояния выпуск:

jira.transitions(issue)

[{'id':' 181',' name':' Fix Failed',' to':..........}}}, {'id': '261', 'name': 'Fix Verfied', 'to': {'self':.....}}}]

таким образом, вы можете выполнить два перехода:

jira.transition_issue(issue, transition='Fix Failed')

или

jira.transition_issue(issue, 261)

затем вы можете проверить, что ваша проблема изменила статус на сервере:

issue = jira.issue('PROJECT-1')
issue.fields.status

статус JIRA: name= 'Fix failed', id= '10830'

так, в ответ на ваш вопрос, вам нужно выполнить больше переходов для передачи проблемы из одного состояния в другое, если состояния не связаны переходом. например.: Рассмотрим процесс из этого url и Ваше текущее состояние проблемы -"разрешить", и Пусть говорят, что вы хотите достичь статуса "В ПРОЦЕССЕ". Аналогичный код можно использовать:

jira.transition_issue(issue, transition='Reopen Issue')
jira.transition_issue(issue, transition='Start Progress')

мой вариант использования был только для изменения статуса билета.
Все, что вам нужно изменить в предыдущей попытке, это не упоминать слово transitionId=

это работает для меня.

jira.transition_issue(issue, '31')