Создание проблем Jira с помощью скрипта Python: проблемы с компонентами, полями duedate и fixversion.
В настоящее время я пишу простой скрипт на Python, который считывает данные из листа Excel и создает задачи Jira на основе этих данных. У меня есть рабочая часть чтения данных Excel и создание задач Jira в основном, но я борюсь с парой полей.
Следующие поля являются обязательными для наших задач Jira:
- проект
- тип вопроса
- резюме
- родительский наблюдатель (настраиваемое поле)
- приоритет
- внешняя заявка (настраиваемое поле)
- исправить версию / ы
- составная часть
- срок оплаты
Я получил первые шесть работ со следующей строкой кода в Python:
issue = jira.create_issue(project=pro, summary=sum, issuetype=type, customfield_13700 = { "name": parent }, priority = {'name': priority}, customfield_12501 = external_bid )
Однако я не уверен, как заполнить другие параметры функции jira.create_issue для полей версий исправлений / версий, компонентов и сроков исполнения.
Я пробовал много разных вещей:
Для поля версии исправления:
issue = jira.create_issue(fixversion=fixversion )
issue = jira.create_issue(fixversion = {'name': fixversion})
issue = jira.create_issue(fixversion = {'value': fixversion})
Все это приводит к следующей ошибке: "errors": {"fixversion": "Поле 'fixversion' не может быть установлено. Его нет на соответствующем экране или неизвестно."}}
Для поля компонента:
issue = jira.create_issue(component = component )
issue = jira.create_issue(component = {'name': component} )
issue = jira.create_issue(fixversion = {'value': component})
Что опять-таки приводит к следующей ошибке: errors ": {" component ":" Поле 'component' не может быть установлено. Его нет на соответствующем экране или неизвестно. "}}
На срок оплаты:
issue = jira.create_issue(duedate = duedate)
issue = jira.create_issue(duedate = {'name': duedate} )
issue = jira.create_issue(duedate = {'value': duedate} )
Что приводит к следующей ошибке: TypeError: Объект типа 'datetime' не поддерживает сериализацию JSON
На данный момент я попробовал множество разных вещей и посмотрел кучу вещей, большинство из которых указывают на эту страницу:
Проекты JIRA могут содержать много разных типов проблем. Некоторые экраны выпуска имеют разные требования к полям в новом выпуске. Эта информация доступна через метод createmeta. Дополнительные примеры доступны здесь.
Что не очень полезно для меня. У кого-нибудь есть идеи, как лучше действовать отсюда?
1 ответ
Ошибка TypeError: Object of type 'datetime' is not JSON serializable
выдается при попытке сериализации объекта datetime в объект JSON.
duedate
значение, которое вы используете, является объектом даты и времени. Всякий раз, когда вы пытаетесь сбросить словарь, содержащий объект datetime, в объект JSON, вы столкнетесь с этой ошибкой. Пример ниже:
import datetime
test = {}
test['date'] = datetime.datetime.now()
import json
json.dumps(test)
Чтобы избежать этой ошибки, преобразуйте ваш объект datetime в объект, который принят стандартом Javascript Object Notation (JSON). Такие как строка.
test['date'] = str(datetime.datetime.now())
json.dumps(test)
Обратите внимание, что прямое преобразование из вашего объекта datetime может не соответствовать формату JIRA для принятых дат. Используйте правильный формат при приведении к строке (посмотрите документацию на дату и время)