2013-11-13 5 views
9

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

ответ

13

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

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

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

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

JIRA-питон документов открывать и делать переходы here.

+0

Эти документы довольно хорошие ИМО. – mdoar

-1

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

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

jira.transition_issue(issue, '31') 
1

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

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

JIRA Статус: имя = 'Fix представленный', ID = '10827'

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

jira.transitions(issue) 

[{ 'ID': '181', 'имя': 'Fix Failed', 'до': ..........}}}, {» ID ': '261', 'Имя': 'Fix Verfied', 'в': {' сам ': .....}}}]

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

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

или

jira.transition_issue(issue, 261) 

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

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

JIRA Статус: имя = «Fix не удалось», ID = «10830»

Так, в ответ на ваш вопрос, вам нужно выполнить более переход к передаче вопроса из одного состояния в другое, если государства не являются связанный переходом. например.: Рассмотрим рабочий процесс from this url и текущее состояние вашей проблемы: «RESOLVED», и предположим, что вы хотите достичь статуса «В ПРОГРЕССЕ». Аналогичный код может использоваться:

jira.transition_issue(issue, transition='Reopen Issue') 
jira.transition_issue(issue, transition='Start Progress') 
Смежные вопросы