Jiraから移行
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
Jiraを使用している場合は、次のいずれかを実行できます:
- Jiraから移行せずにGitLabで新しく開始します。そうすれば、GitLabを使用するメリットを最大化するために、プロセスとワークフローを設定することに集中できます。
- いくつかのオプションのいずれかを使用して、JiraからGitLabへ移行します。
| 移行オプション | 説明 |
|---|---|
| GitLabプロフェッショナルサービス | GitLabプロフェッショナルサービスに移行を実行してもらいます。 |
Jira2Lab | jira2gitlabのGitLabプロフェッショナルサービスによるフォークであるJira2Labを使用します。 |
| サードパーティスクリプト | 例えば、移行にはjira2gitlabを使用します。 |
| Jiraインポーター | GitLabに組み込まれているJiraインポーターを使用します。 |
| CSVファイルインポート | CSVファイルを使用して、JiraからGitLabへデータを移動します。 |
| 独自のスクリプト | GitLab RESTまたはGraphQL APIを使用する独自のスクリプトを作成します。 |
| サードパーティサービス | GitLabとJiraを同期させるサードパーティサービス(UnitoやGetintなど)を使用します。 |
Jiraインポーターを使用
Jiraインポーターを使用して、JiraイシューをGitLabにインポートできます。複数のJiraプロジェクトからのイシューをGitLabプロジェクトにインポートできます。GitLabは、イシューのタイトル、説明、およびラベルを直接インポートします。インポートの準備中に、JiraユーザーをGitLabプロジェクトのメンバーにマッピングすることもできます。
GitLabイシューフィールドに正式にマッピングされていないその他のJiraイシューメタデータは、GitLabイシューの説明にプレーンテキストとしてインポートされます。
Jiraイシュー内のテキストはGitLab Flavored Markdownに解析されないため、テキストの書式設定が破損する可能性があります。詳細については、イシュー379104を参照してください。
Epic 2738では、イシューの割り当て者、コメント、およびその他の改善をGitLab Jiraインポーターに追加することが提案されています。
前提条件
- Jiraイシューへの読み取りアクセスと、インポート先のGitLabプロジェクトのMaintainerまたはOwnerロール。
- GitLab Jiraイシューインテグレーションを設定します。
Jiraイシューのインポート
Jiraイシューのインポートは非同期のバックグラウンドジョブとして実行されるため、次の要因に基づいて遅延が発生する可能性があります:
- インポートキューのロード。
- システムロード。
- その他の要因。
大規模なプロジェクトのインポートには、インポートのサイズによっては数分かかることがあります。
JiraイシューをGitLabプロジェクトにインポートするには:
作業アイテムページで、アクション ( ) > Jiraからのインポートを選択します。
インポート元ドロップダウンリストを選択し、イシューをインポートしたいJiraプロジェクトを選択します。
Jira-GitLabユーザーマッピングテンプレートセクションでは、テーブルにJiraユーザーがどのGitLabユーザーにマッピングされているかを示します。フォームが表示されると、ドロップダウンリストはインポートを実行するユーザーにデフォルトで設定されます。
マッピングを変更するには、GitLabのユーザー名列のドロップダウンリストを選択し、各Jiraユーザーにマッピングしたいユーザーを選択します。
ドロップダウンリストにはすべてのユーザーが表示されない場合があるため、検索バーを使用してこのGitLabプロジェクトの特定のユーザーを見つけてください。
続行するを選択します。インポートが開始されたことを確認するメッセージが表示されます。
インポートがバックグラウンドで実行されている間、作業アイテムページに移動して、リストに新しいイシュー (Issueタイプの作業アイテム) が表示されていることを確認できます。
インポートのステータスを確認するには、もう一度Jiraインポートページにアクセスしてください。
CSVファイルを使用
JiraイシューデータをCSVファイルからGitLabプロジェクトにインポートするには:
- Jiraデータをエクスポート:
- Jiraインスタンスにログインし、移行したいプロジェクトに移動します。
- プロジェクトデータをCSVファイルとしてエクスポートします。
- CSVファイルを編集して、GitLab CSVインポーターに必要な列名に合わせます。
title、description、due_date、milestoneのみがインポートされます。- インポートプロセス中に他のイシューメタデータを自動的に設定するために、説明テンプレートフィールドにクイックアクションを追加できます。
- 新しいGitLabグループとプロジェクトを作成します:
- GitLabアカウントにサインインし、移行されたプロジェクトをホストするグループを作成します。
- 新しいグループで、移行されたJiraイシューを保持する新しいプロジェクトを作成します。
- JiraデータをGitLabにインポートします:
- 新しいGitLabプロジェクトで、左サイドバーのPlan > 作業アイテムを選択します。
- アクション ( ) > Jiraからのインポートを選択します。
- 画面の指示に従ってインポートプロセスを完了します。
- 移行を確認します:
- インポートされたイシューをレビューして、プロジェクトがGitLabに正常に移行されたことを確認します。
- 移行されたJiraプロジェクトの機能をGitLabでテストします。
- ワークフローと設定を調整します:
- 移行に満足したら、Jiraインスタンスの廃止とGitLabへの完全な移行を行うことができます。
独自のスクリプトを作成
移行プロセスを完全に制御するために、ニーズに正確に適合する方法でJiraイシューをGitLabに移行する独自のカスタムスクリプトを作成できます。GitLabは、移行の自動化を支援するAPIを提供しています:
まず、以下のGitLab APIエンドポイントについて理解を深めてください:
スクリプトを作成する際は、Jiraイシューフィールドを対応するGitLabの同等フィールドにマッピングする必要があります。
| Jiraイシューフィールド | 考えられるGitLabの同等物 |
|---|---|
| オプションの数が固定されているカスタムフィールド | フィールド名をスコープ付きラベルキーとして、フィールド値をスコープ付きラベルセットの値として設定したスコープ付きラベルセットを作成します。例: input name::value1、input name::value2。 |
| テキスト文字列または整数値を持つカスタムフィールド | カスタムフィールド名と値をイシューの説明内のセクションに挿入します。 |
| ステータス | ステータスを使用します。 |
| 優先度 | 優先度をスコープ付きラベルキーとして、優先度値をスコープ付きラベルセットの値として設定したスコープ付きラベルを作成します。例: priority::1。 |
| ストーリーポイント | この値をGitLabイシューのweight値にマッピングします。 |
| スプリント | この値をGitLabイシューのイテレーション値にマッピングします。この値は、未完了のイシューまたは将来のスプリントにスケジュールされているイシューの場合にのみ意味があります。データをインポートする前に、プロジェクトの親グループに必要なイテレーションを作成します。 |
Atlassian Document Formatを解析し、それをGitLab Flavored Markdownにマッピングする必要もあります。これにはさまざまなアプローチがあります。参考として、コミットの例をご覧ください。このコミットは、Atlassian Document FormatをGitLab Flavored Markdownに解析し、Jiraインポーター用にマッピングするメソッドを追加しました。
ローカルでGitLabを実行している場合、Atlassian Document FormatをGitLab Flavored MarkdownにRailsコンソールで手動で変換することもできます。これを行うには、以下を実行します:
text = <document in Atlassian Document Format>
project = <project that wiki is in> or nil
Banzai.render(text, pipeline: :adf_commonmark, project: project)