Обновите настраиваемое каскадное поле выбора в JIRA с помощью suds - PullRequest
1 голос
/ 14 февраля 2011

Использование JIRA версии 4.2. Как в Python 2.7 и suds 0.4 как обновить поле настраиваемого каскадного выбора проблемы (как родительского, так и дочернего)?

Существует пример SOAPpy , доступный в разделе «Клиент Python (SOAPPy)». Я не смог выполнить обновление такого типа с использованием Python JIRA CLI .

Пример: При обновлении каскадного выбора настраиваемого дочернего элемента родительского поля customfield_10 необходимо обновить поле customfield_10_1.

Обновление

Код для отображения исходного значения каскадного поля:

issue = client.service.getIssue(auth, "NAHLP-33515")
for f in fields:
    if f['customfieldId'] == 'customfield_10050' or f['customfieldId'] == 'customfield_10050_1':
        print f

В результате:

(RemoteCustomFieldValue){
   customfieldId = "customfield_10050"
   key = None
   values[] =
      "10981",
 }

После ручной установки дочернего элемента каскадного поля приведенный выше код приводит к:

(RemoteCustomFieldValue){
   customfieldId = "customfield_10050"
   key = None
   values[] =
      "10981",
 }
(RemoteCustomFieldValue){
   customfieldId = "customfield_10050"
   key = "1"
   values[] =
      "11560",
 }

Вышеуказанные значения - это то, чего я надеюсь достичь с помощью suds .

Обратите внимание на поле key = "1" . Значение ключа обозначает, что этот объект является дочерним по отношению к customfield_10050.
Ссылка на документацию : parentKey - Используется для многомерных настраиваемых полей, таких как каскадные списки выбора. Нуль в других случаях

Попробуем отправить значение ключевого поля:

client.service.updateIssue(auth, "NAHLP-33515", [
                           {"id":"customfield_10050", "values":["10981"]},
                           {"id":"customfield_10050_1", "key":"1", "values":["11560"]}
                           ])

Это приводит к ошибке, поскольку updateIssue принимает параметр RemoteFieldValue [], а не RemoteCustomFieldValue [] ( благодаря Мэтту Доару ):

suds.TypeNotFound: Type not found: 'key'

Так как же нам передать параметр RemoteCustomFieldValue для обновления проблемы?

Обновление 2, ответ mdoar

Запустил следующий код с помощью suds:

client.service.updateIssue(auth, "NAHLP-33515", [
                           {"id":"customfield_10050", "values":["10981"]},
                           {"id":"customfield_10050_1", "values":["11560"]}
                           ])`

После значения:

(RemoteCustomFieldValue){
   customfieldId = "customfield_10050"
   key = None
   values[] =
      "10981",
 }

К сожалению, это не обновляет дочерний элемент customfield_10050. Проверено вручную.

Разрешение:

Спасибо, Мдоар! Чтобы обновить родительский и дочерний элементы каскадного поля выбора, используйте двоеточие (':') для обозначения дочернего поля.

Рабочий пример:

client.service.updateIssue(auth, "NAHLP-33515", [
                           {"id":"customfield_10050", "values":["10981"]},
                           {"id":"customfield_10050:1", "values":["11560"]}
                           ])

1 Ответ

1 голос
/ 15 февраля 2011

См. https://studio.plugins.atlassian.com/browse/JCLIMD-9 для получения дополнительной информации

...