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

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

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

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

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

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

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

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

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

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

Получение токена аутентификации TeamStorm

Для аутентификации в API TeamStorm необходимо выбрать учетную запись пользователя, у которого есть системные роли "Администратор Core" и "Пользователь TeamStorm".

  1. Авторизуйтесь в TeamStorm в браузере с выбранной учетной записью.
  2. Откройте веб-инспектор браузера.
  3. Откройте любой запрос TeamStorm.
  4. Скопируйте из заголовка запроса Authorization токен авторизации (символы без "Bearer").

    Получение токена аутентификации TeamStorm

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

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

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

  1. - URL сервера TeamStorm

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

    "EzLCJzaWQiOiJh...jzSZHNHP3Jw"
    
  3. - URL сервера Jira

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

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

    "DEV"
    
  6. --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 необходимыми параметрами

    ```shell python3 jira_migration.py --type server7 [дополнительные параметры скрипта]

    Пример вызова скрипта:
    
    ```shell
    python3 jira_migration.py "http://teamstorm.ru"
    "EzLCJzaWQiOiJh...jzSZHNHP3Jw"
    "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. Поля задач
    • Метки (как кастомное поле)
    • Дата выполнения
    • Приоритет (как кастомное поле)
    • Компоненты (как портфели)
    • Версия исправления (как портфель)
    • Затронутая версия (как тег)
    • Связи задач
    • Кастомные поля (строки, числа, даты, метки, списки, пользователи) и опции
    • Комментарии
    • Вложения
    • Ответственный
    • Оценка времени (при наличии)
    • Описание
    • Записи о трудозатратах (при наличии)