Как я могу установить релиз на «Выпущено» в JIRA - PullRequest
0 голосов
/ 27 августа 2018

У меня есть доска с именем ASDF. На этой плате на вкладке Relaeses у меня есть версия с именем: QWER. Эта версия имеет 3 проблемы.

Я хочу изменить статус версии на «Выпущено», если все проблемы находятся в состоянии «выполнено». Я не знаю, как изменить статус на «Выпущено».

Я пытаюсь сделать это с помощью JIRA-Python REST-API. Я также открыт для метода CLI.

1 Ответ

0 голосов
/ 30 августа 2018

Лучший способ сделать это - использовать плагин Jira Automation . Имейте в виду, я не имею никакого отношения к этому плагину; Однако у меня есть опыт его использования, и он идеально подходит для этой цели. Что касается решения python-jira, имейте в виду, что это будет намного сложнее. Сначала вы должны убедиться, что все проблемы решены, это можно сделать с помощью:

def version_count_unresolved_issues(self, id):
        """Get the number of unresolved issues for a version.

        :param id: ID of the version to count issues for
        """
        return self._get_json('version/' + id + '/unresolvedIssueCount')['issuesUnresolvedCount']

Итак, мы проверим некоторые условные выражения следующим образом:

if not jira.version_count_unresolved_issues('QWER'):
    jira.move_version(...)

Функция move_version выглядит следующим образом:

def move_version(self, id, after=None, position=None):
        """Move a version within a project's ordered version list and return a new version Resource for it.

        One, but not both, of ``after`` and ``position`` must be specified.

        :param id: ID of the version to move
        :param after: the self attribute of a version to place the specified version after (that is, higher in the list)
        :param position: the absolute position to move this version to: must be one of ``First``, ``Last``,
            ``Earlier``, or ``Later``
        """
        data = {}
        if after is not None:
            data['after'] = after
        elif position is not None:
            data['position'] = position

        url = self._get_url('version/' + id + '/move')
        r = self._session.post(
            url, data=json.dumps(data))

        version = Version(self._options, self._session, raw=json_loads(r))
        return version

Что касается вашего комментария, взгляните на это, кроме документов:

from jira import JIRA
import re

# By default, the client will connect to a JIRA instance started from the Atlassian Plugin SDK
# (see https://developer.atlassian.com/display/DOCS/Installing+the+Atlassian+Plugin+SDK for details).
# Override this with the options parameter.
options = {
    'server': 'https://jira.atlassian.com'}
jira = JIRA(options)

Вы нигде не передаете себя, вы просто вызываете функции экземпляра jira следующим образом:

jira.version_count_unresolved_issues('QWER')

Вы вообще не передаете себя, экземпляр jira автоматически передается как self за кулисами, пожалуйста, взгляните на документы по python-jira для получения дополнительной информации: https://jira.readthedocs.io/en/master/examples.html

...