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

Замена ссылок на импортированные задачи и страницы

Документ описывает инструкцию по замене ссылок на импортированные из Jira и Confluence задачи и страницы. После импорта в описанииях и комментариях задач и страниц могут оставаться ссылки на объекты в системах из которых выполнен импорт. Скрипт заменяет их ссылки на аналогичные объекты в TeamStorm.

Порядок запуска

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

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

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

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

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

  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. Распакуйте архив со скриптами миграции

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

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

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

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

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

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

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

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

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

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

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

    "EzLCJzaWQiOiJh...jzSZHNHP3Jw"
    

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

Выбор пространств TeamStorm для поиска и замены задач и страниц

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

    --ts_spaces "KEY1" "KEY2"

Выбор пространств Confluence для поиска страниц

Для оптимизации времени выполнения скрипта можно ограничить поиск страниц в Confluence только теми простанствами, для которых существуют ссылки. По умолчанию поиск выполняется по всем пространствам, что может существенно увеличить время импорта. Для поиска страниц только в определенных пространствах, из которых проводился импорт, можно передать их названия через параметр --c_spaces:

    --c_spaces "Space 1" "Space 2"

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

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

    python3 migrate_description_urls.py <ts_url> \
                                 <ts_bearer> \
                                 <с_url> \
                                 <с_token> [Дополнительные параметры скрипта]
    

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

    python3 migrate_description_urls.py "http://teamstorm.ru"
    "EzLCJzaWQiOiJh...jzSZHNHP3Jw"
    "http://local-confluence.yourdomain.ru"
    "EzLCJzaWQiOiJh...WQiZHNH+f3T"
    --ts_spaces "KEY1" "KEY2"
    --c_spaces "Space 1" "Space 2"
    
  3. Дождитесь выполнения скрипта

  4. Проверьте, что ссылки на страницы и задачи в описаниях и комментариях заменены на ссылки аналогичных задач и страниц, импортированных в TeamStorm