Можно ли изменить статус проблемы 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')