Python-jiraでjiraの問題のステータスを変更したいです。python-jiraAPIは http://jira-python.readthedocs.org/en/latest/ です。これを行う。 issue.update(status="Closed")
を使おうとしましたが、機能しませんでした。問題のステータスとワークフローが https://developer.atlassian.com/display/JIRADEV/Issue+status+and +ワークフロー 。しかし、私はまだ何をすべきかわかりません。誰かが私を助けることができますか?
私もこれに遭遇しましたが、残念ながらJIRAの信じられないほどの柔軟性がPITAになることもあります。
チケットのステータスを変更するには、 transition を作成する必要があります。これにより、チケットが1つのステータスから次のステータスに移動します。
遷移IDを見つけて、次のように使用する必要があります。
if issue.fields.status in ('open', 'reopened'):
# Move the ticket from opened to closed.
jira.transition_issue(ticket, transition='131')
jira-pythonは、遷移の検出と作成を文書化しています ここ 。
jira.transition_issue
は文書化されています ここ 。実際にはnameを使用できます(例:'Closed'
)IDの代わりに遷移のですが、IDは変更されないため、より信頼性が高くなります。
ステータスを変更するには、問題の上でトランザクションを実行する必要があります。移行は、「ワークフロー」で定義されている単なる操作であり、あるステータスから別のステータスへの移行の問題です。現在のステータスから、「ワークフロー」に応じて、限られた一連の遷移を実行できます。次の機能を使用してみてください。現在の問題のステータス:
issue = jira.issue('PROJECT-1')
issue.fields.status
JIRAステータス:name = '修正送信済み'、id = '10827'
問題の現在のステータスの可能な遷移:
jira.transitions(issue)
[{'id': '181'、 'name': 'Fix Failed'、 'to':..........}}}、{'id': '261'、 'name': 'Fix Verfied'、 'to':{'self':.....}}}]
したがって、2つの遷移を実行できます。
jira.transition_issue(issue, transition='Fix Failed')
または
jira.transition_issue(issue, 261)
次に、問題がサーバーのステータスを変更したことを確認できます。
issue = jira.issue('PROJECT-1')
issue.fields.status
JIRAステータス:name = '修正に失敗しました'、id = '10830'
したがって、あなたの質問に答えて、状態が遷移によって接続されていない場合、問題をある状態から別の状態に転送するために、より多くの遷移を実行する必要があります。例:ワークフローを検討してください このURLから そして問題の現在の状態は "[〜#〜]解決済み[〜#〜] "、ステータス"IN PROGRESS "を達成したいとします。同様のコードを使用できます。
jira.transition_issue(issue, transition='Reopen Issue')
jira.transition_issue(issue, transition='Start Progress')
私のユースケースは、チケットのステータスを変更することだけでした。
以前の試みで変更する必要があるのは、単語transitionId=
について明示的に言及しないことだけです。
これは私のために働いた。
jira.transition_issue(issue, '31')