Est-il possible de changer le statut de Jira issue avec python-jira?

3 réponses

j'ai rencontré ça aussi, et malheureusement L'incroyable flexibilité de JIRA en fait aussi une PITA parfois.

pour changer le statut sur un ticket, vous devez faire un transition, qui le déplace d'un statut à l'autre.

vous devez trouver vos ID de transition, puis l'utiliser comme suit:

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

jira-python documents de découvrir et de faire des transitions ici.

13
répondu TkTech 2016-01-21 23:22:50

pour changer le statut, vous devez effectuer le mouvement au-dessus du numéro. La Transition est juste l'opération qui est définie dans le "flux de travail", et la question de transit d'un État à l'autre. À partir de l'état actuel, vous pouvez effectuer tout ensemble limité de transition, qui dépend de "workflow". Essayez d'utiliser les fonctions suivantes: Actuel état du problème:

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

JIRA Statut: nom='Fix soumis' id='10827'

transitions possibles pour l'état actuel de la question:

jira.transitions(issue)

[{'id': '181', 'nom': 'Fix Failed','': ..........}}}, {'id': "261", "name": "Fixed verified", "to": {"self":.....}}}]

alors vous pouvez effectuer deux transitions:

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

ou

jira.transition_issue(issue, 261)

alors vous pouvez vérifier que votre problème a changé de statut sur le serveur:

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

JIRA Statut: nom='Fix échoué", id='10830'

donc, en réponse à votre question, vous devez effectuer plus de transition pour transférer la question d'un État à un autre si les États ne sont pas connectés par la transition. par exemple.: Envisager de flux de travail à partir de cette url et que votre problème actuel de l'état est " résolu", et disons que vous voulez atteindre le statut de " EN COURS". Un code similaire peut être utilisé:

jira.transition_issue(issue, transition='Reopen Issue')
jira.transition_issue(issue, transition='Start Progress')
4
répondu user3787216 2017-08-23 00:00:45

mon cas d'utilisation était seulement pour changer le statut du billet.

Tout ce que vous devez changer dans votre précédente tentative est ne mentionnent pas explicitement le mot transitionId=

Cela a fonctionné pour moi.

jira.transition_issue(issue, '31')
-1
répondu NikRams 2017-02-07 17:57:01