Здесь, в Linagora, мы верим в OpenSource. Мы знаем, что сообщество OpenSource привлекает мотивированных разработчиков, которые часто очень дисциплинированы. Эти разработчики знают, что их код представляет собой их резюме, поэтому они стараются написать его как можно элегантнее. Линагора верит в OpenSource, потому что знает, что все пользователи продуктов OpenSource имеют доступ к исходному коду, и поэтому часто предлагает как исправления ошибок, так и улучшения исходного кода. Следовательно, качество программного обеспечения, производимого сообществом OpenSource, иногда превышает качество программного обеспечения, производимого чисто коммерческими организациями. Стоит отметить, что OpenSource не означает freemium. Эти концепции полностью ортогональны. Я не собираюсь сравнивать здесь эти концепции. Если вам интересно, пожалуйста, обратитесь здесь для более подробной информации.

Если вы читали мою последнюю статью на носителе (Докер… моя прелесть), вы должны знать, что мы недавно перешли с Atlassian на GitLab.

Перенести наши репозитории с Bitbucket на GitLab стало так просто благодаря Git. Однако перенос наших задач (также называемых тикетами) из JIRA в GitLab был не столь очевиден. Фактически, существует несколько альтернативных решений для интеграции JIRA в качестве плагина внутри GitLab, чтобы продолжать использовать JIRA вместе с GitLab. Однако нашей главной целью было полностью использовать GitLab как единственный инструмент разработки с открытым исходным кодом.

Если вы хотите узнать, как перенести свои проблемы с JIRA в GitLab, то вы находитесь на правильной средней статье. Прочитав его, вы обнаружите, что выполнить миграцию с JIRA на GitLab действительно очень просто. Да, как видите, зима приближается к соперникам GitLab, потому что с GitLab все возможно.

Перенос проблем JIRA в проблемы GitLab

В нашем процессе миграции будут использоваться REST API, предоставляемые как JIRA REST API, так и GitLab Issues REST API.

  • Вызовы API:

Для выполнения вызовов REST API вы можете использовать вашу собственную предпочитаемую библиотеку. Что касается меня, я буду использовать axios, который является моим предпочтительным HTTP-клиентом на основе обещаний для браузера и node.js. Вы можете просто установить его локально, выполнив:

npm install axios
  • Сторона JIRA:

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

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

Вторая конечная точка - получить вложения и комментарии, связанные с заданной проблемой:

  • Сторона GitLab:

Что касается JIRA, нам нужно собрать некоторую информацию перед отправкой REST-запросов:

Каждая задача JIRA имеет несколько полей, которые представляют пользователей JIRA, например, уполномоченный и репортер. После перехода на GitLab мы должны попытаться связать этих пользователей с пользователями GitLab (если они уже существуют в GitLab). Однако, если пользователь не является пользователем GitLab, мы должны использовать GITLAB_TOKEN (строка 18 в последней сущности). То есть, если пользователь не существует в GitLab, вместо этого будет использоваться идентификатор пользователя, который выполняет миграцию.

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

И теперь мы можем найти соответствующего пользователя GitLab для каждого пользователя JIRA, выполнив:

Стоит отметить, что проблемы JIRA и GitHub различаются по своей природе, поэтому вам необходимо перенести один тип проблемы на другой. После поиска всех проблем JIRA и вложений и комментариев JIRA теперь мы можем перенести их в задачи GitLab, выполнив следующее сопоставление:

Теперь наша проблема GitLab создана, все, что нам нужно сделать, это опубликовать ее:

Заворачивать

Как видите, перенос билетов JIRA в GitLab связан с некоторыми вызовами REST API. Как разработчик, я думаю, что вы делаете такие вызовы REST API каждый день. Так что нам действительно не нужно останавливаться на JIRA или добавлять его в качестве плагина к GitLab.

Если вы думаете, что эта статья поможет вам открыть для себя что-то интересное, чем вы хотите заниматься каждый день, не сомневайтесь и присоединяйтесь к нам. Ищем новые таланты. Для получения дополнительной информации посетите наш Сайт вакансий.