Создание проблем Jira с помощью скрипта Python: проблемы с компонентами, полями duedate и fixversion.

В настоящее время я пишу простой скрипт на Python, который считывает данные из листа Excel и создает задачи Jira на основе этих данных. У меня есть рабочая часть чтения данных Excel и создание задач Jira в основном, но я борюсь с парой полей.

Следующие поля являются обязательными для наших задач Jira:

  1. проект
  2. тип вопроса
  3. резюме
  4. родительский наблюдатель (настраиваемое поле)
  5. приоритет
  6. внешняя заявка (настраиваемое поле)
  7. исправить версию / ы
  8. составная часть
  9. срок оплаты

Я получил первые шесть работ со следующей строкой кода в 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 для принятых дат. Используйте правильный формат при приведении к строке (посмотрите документацию на дату и время)

Другие вопросы по тегам