Создание проблем Jira с помощью скрипта Python: проблемы с компонентами, полями duedate и fixversion. - PullRequest
0 голосов
/ 21 февраля 2019

В настоящее время я пишу простой скрипт на 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})

, что приводит к следующей ошибке: "ошибки":{"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: Object ofтип 'datetime' не поддерживает сериализацию в формате JSON

На данный момент я пробовал множество разных вещей и искал кучу вещей, большинство из которых указывают на эту страницу :

Проекты JIRA могут содержать много разных типов проблем. Некоторые экраны проблем имеют разные требования к полям в новой проблеме. Эта информация доступна с помощью метода createmeta. Доступны другие примеры здесь .

Что для меня не очень полезно. У кого-нибудь есть идеи, как лучше отсюда продолжить?

1 Ответ

0 голосов
/ 21 февраля 2019

Ошибка TypeError: Object of type 'datetime' is not JSON serializable выдается при попытке сериализации объекта datetime в объект JSON.

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

...