web-dev-qa-db-ja.com

python-jiraでjiraの発行ステータスを変更することはできますか?

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 +ワークフロー 。しかし、私はまだ何をすべきかわかりません。誰かが私を助けることができますか?

16
wind

私もこれに遭遇しましたが、残念ながら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は変更されないため、より信頼性が高くなります。

19
TkTech

ステータスを変更するには、問題の上でトランザクションを実行する必要があります。移行は、「ワークフロー」で定義されている単なる操作であり、あるステータスから別のステータスへの移行の問題です。現在のステータスから、「ワークフロー」に応じて、限られた一連の遷移を実行できます。次の機能を使用してみてください。現在の問題のステータス:

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')
7
user3787216

私のユースケースは、チケットのステータスを変更することだけでした。
以前の試みで変更する必要があるのは、単語transitionId=について明示的に言及しないことだけです。

これは私のために働いた。

jira.transition_issue(issue, '31')
0
NikRams