Перейти к содержанию

Импорт из серверной версии Jira

Документ описывает перенос проекта из серверной версии Jira 7 в TeamStorm.

Исходные данные

Для переноса проекта из Jira потребуются следующие данные:

  • архив со скриптами импорта;
  • URL сервера TeamStorm;
  • токен аутентификации пользователя TeamStorm;
  • URL сервера Jira;
  • персональный токен доступа пользователя Jira;
  • ключ проекта Jira, который необходимо перенести.

Подготовка запуска

  1. Установите среду выполнения Python 3.11.
  2. Установите следующие модули:

        pip install \
            future==0.18.2
            lxml==4.9.2
            requests==2.31.0
            jsonpickle==3.0.2
            dataclasses-json==0.5.7
            pytz==2023.3
    
  3. Распакуйте архив со скриптами миграции

  4. Добавьте пользователей в TeamStorm перед запуском импорта. E-mail или отображаемое имя пользователей TeamStorm должны совпадать с пользователями Jira для автоматического маппинга.

Создание токена Jira

  1. Авторизуйтесь в Jira с выбранной учетной записью.
  2. Создайте и сохраните персональный ключ доступа в профиле пользователя согласно документации Atlassian Using Personal Access Tokens

Основные параметры скрипта

  1. <teamstorm_url> - URL сервера TeamStorm:

    "https:\\teamstorm.io"
    
  2. <teamstorm_token> - токен аутентификации пользователя TeamStorm:

        "ivan.ivanov"
    
  3. - пароль пользователя TeamStorm

        "EzL...ewQ"
    
  4. <jira_url> - URL сервера Jira:

    "https:\\jira.yourdomain.ru"
    
  5. <jira_token> - персональный токен доступа пользователя Jira:

    "EzLCJzaWQiOiJh...jzSZHNHP3Jw"
    
  6. <project_key> - ключ проекта Jira, который необходимо перенести:

    "DEV"
    
  7. --type - тип установки Jira (server7 для версий Jira ниже 8):

    --type server7
    

Дополнительные параметры скрипта

Выбор пространства

По умолчанию при импорте для каждого проекта создаётся новое пространство. Этому пространству назначается ключ и название импортируемого проекта Jira.

Для того, чтобы создать пространство с другим ключом и названием, необходимо указать параметры:

--space_name "Название нового пространства"
--space_key "Ключ нового пространства"

Для того, чтобы импортировать проект в существующее пространство необходимо указать параметр:

--space_key "Ключ существующего пространства"

Если в TeamStorm уже существует пространство с указанным ключом проекта, данные будут импортированы в него.

Импорт scrum-доски

Для импорта scrum-доски в проект необходимо указать в параметрах скрипта её название. В пространстве TeamStorm можно импортировать только одну scrum-доску:

--j_board "Название scrum-доски"

Выбор типа оценки

По умолчанию при импорте задачам в пространстве назначаются оба способа оценки - и в часах, и в SP (сторипоинтах). Если необходимо оставить только оценку в часах нужно указать параметр:

--estimation time

Если необходимо оставить только оценку в SP (сторипоинтах) нужно указать параметр:

--estimation sp

Импорт нескольких проектов в одно пространство

По умолчанию при импорте проекта в существующее пространство или при повторном импорте существующие настройки (созданные в пространстве типы, атрибуты, процессы) не обновляются.

Для того, чтобы обновить настройки укажите параметр:

--update_settings

Импорт задач частями

Для импорта больших объемов задач возможно разбить импорт на несколько частей, указав начальную и конечную позицию в списке задач.

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

--startIndex 100

При указании конечного индекса будут импортированы все задачи, до указанного индекса:

--endIndex 500

При указании обоих параметров будут импортированы задачи внутри указанного диапазона.

Сохранение данных импорта в файл

Возможно сохранить данные для импорта в файл для последующего запусĸа сĸрипта без доступа в Jira.

Для этого необходимо уĸазать путь ĸ файлу, в ĸоторый будет записаны данные для импорта:

--save_import import.json

Импорт данных из файла

Возможен импорт из сохраненного файла. Данные будут импортироваться из файла без обращения ĸ Jira.

Для этого необходимо уĸазать путь ĸ файлу, из ĸоторого будет выполнен импорт.

--from_file import.json

Cохранение номеров задач исходного проекта

Возможно сохранение номеров задач в исходном проекте при условии импорта одного проекта Jira в пространство TeamStorm.

Для этого необходимо уĸазать параметр:

--preserve_keys

Отключение назначения системных ролей пользователям при импорте

Пользователям, которые добавляются в импортированные пространства, выдаются системные роли. При этом доступные лицензии могут быть исчерпаны при назначении большого кол-ва системных ролей. Возможно назначение задач пользователям без предоставления им лицензий.

Для этого необходимо уĸазать параметр:

--skip_system_roles_assignment

Импорт записей о списании времени

Возможно импортировать привязанные к задачам записи о списании времени (worklog). При этом дата списания, время и комментарий будут соответствовать исходным записям (ворклогам). Автором списания будет пользователь пол учетной записью которого выполняется импорт, автор исходного списания будет отражен в комментарии списания.

Необходимо уĸазать параметр:

--import_worklogs

Запуск скрипта

  1. Перейдите в папку со скриптами
  2. Выполните команду c необходимыми параметрами:

    python3 jira_migration.py <teamstorm_url> <teamstorm_token> <jira_url> <jira_token> <project_key>
    --type server7 [дополнительные параметры скрипта]
    

    Пример вызова скрипта:

    python3 jira_migration.py "http://teamstorm.ru" \
    "ivan.ivanov" "EzL...ewQ" \
    "http://local-jira.teamstorm.io" \
    "EzLCJzaWQiOiJh...WQiZHNH+f3T" \
    "TEMP" \
    --type server7
    
  3. Дождитесь выполнения скрипта и проверьте импортированные данные

  4. В случае возникновения ошибок соединения скрипт можно перезапустить c теми же параметрами, продолжится импорт оставшихся задач.

Результат переноса

В результате будет выполнен перенос данных исходного проекта:

  1. Проект (перенос ключа, названия проекта и описания).
  2. Типы задач.
  3. Статусы и Workflow.
  4. Кастомные атрибуты.
  5. Пользователи проекта.
  6. Роли и их разрешения.
  7. Задачи и подзадачи.
  8. Scrum-board (бэклог и спринты), при наличии.
  9. Версии.
  10. Компоненты.
  11. Поля задач:
    • Метки (как кастомное поле);
    • Дата выполнения;
    • Приоритет (как кастомное поле);
    • Компоненты (как портфели);
    • Версия исправления (как портфель);
    • Затронутая версия (как тег);
    • Связи задач;
    • Кастомные поля (строки, числа, даты, метки, списки, пользователи) и опции;
    • Комментарии;
    • Вложения;
    • Ответственный;
    • Оценка времени (при наличии);
    • Описание;
    • Записи о трудозатратах (при наличии).