正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

Jiraから移行

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

Jiraを使用している場合は、次のいずれかを実行できます:

  • Jiraから移行せずにGitLabで新しく開始します。そうすれば、GitLabを使用するメリットを最大化するために、プロセスとワークフローを設定することに集中できます。
  • いくつかのオプションのいずれかを使用して、JiraからGitLabへ移行します。
移行オプション説明
GitLabプロフェッショナルサービスGitLabプロフェッショナルサービスに移行を実行してもらいます。
Jira2Labjira2gitlabのGitLabプロフェッショナルサービスによるフォークであるJira2Labを使用します。
サードパーティスクリプト例えば、移行にはjira2gitlabを使用します。
JiraインポーターGitLabに組み込まれているJiraインポーターを使用します。
CSVファイルインポートCSVファイルを使用して、JiraからGitLabへデータを移動します。
独自のスクリプトGitLab RESTまたはGraphQL APIを使用する独自のスクリプトを作成します。
サードパーティサービスGitLabとJiraを同期させるサードパーティサービス(UnitoGetintなど)を使用します。

Jiraインポーターを使用

Jiraインポーターを使用して、JiraイシューをGitLabにインポートできます。複数のJiraプロジェクトからのイシューをGitLabプロジェクトにインポートできます。GitLabは、イシューのタイトル、説明、およびラベルを直接インポートします。インポートの準備中に、JiraユーザーをGitLabプロジェクトのメンバーにマッピングすることもできます。

GitLabイシューフィールドに正式にマッピングされていないその他のJiraイシューメタデータは、GitLabイシューの説明にプレーンテキストとしてインポートされます。

Jiraイシュー内のテキストはGitLab Flavored Markdownに解析されないため、テキストの書式設定が破損する可能性があります。詳細については、イシュー379104を参照してください。

Epic 2738では、イシューの割り当て者、コメント、およびその他の改善をGitLab Jiraインポーターに追加することが提案されています。

前提条件

Jiraイシューのインポート

Jiraイシューのインポートは非同期のバックグラウンドジョブとして実行されるため、次の要因に基づいて遅延が発生する可能性があります:

  • インポートキューのロード。
  • システムロード。
  • その他の要因。

大規模なプロジェクトのインポートには、インポートのサイズによっては数分かかることがあります。

JiraイシューをGitLabプロジェクトにインポートするには:

  1. work-items 作業アイテムページで、アクション ( ellipsis_v ) > Jiraからのインポートを選択します。

  2. インポート元ドロップダウンリストを選択し、イシューをインポートしたいJiraプロジェクトを選択します。

    Jira-GitLabユーザーマッピングテンプレートセクションでは、テーブルにJiraユーザーがどのGitLabユーザーにマッピングされているかを示します。フォームが表示されると、ドロップダウンリストはインポートを実行するユーザーにデフォルトで設定されます。

  3. マッピングを変更するには、GitLabのユーザー名列のドロップダウンリストを選択し、各Jiraユーザーにマッピングしたいユーザーを選択します。

    ドロップダウンリストにはすべてのユーザーが表示されない場合があるため、検索バーを使用してこのGitLabプロジェクトの特定のユーザーを見つけてください。

  4. 続行するを選択します。インポートが開始されたことを確認するメッセージが表示されます。

    インポートがバックグラウンドで実行されている間、作業アイテムページに移動して、リストに新しいイシュー (Issueタイプの作業アイテム) が表示されていることを確認できます。

  5. インポートのステータスを確認するには、もう一度Jiraインポートページにアクセスしてください。

CSVファイルを使用

JiraイシューデータをCSVファイルからGitLabプロジェクトにインポートするには:

  1. Jiraデータをエクスポート:
    1. Jiraインスタンスにログインし、移行したいプロジェクトに移動します。
    2. プロジェクトデータをCSVファイルとしてエクスポートします。
    3. CSVファイルを編集して、GitLab CSVインポーターに必要な列名に合わせます。
      • titledescriptiondue_datemilestoneのみがインポートされます。
      • インポートプロセス中に他のイシューメタデータを自動的に設定するために、説明テンプレートフィールドにクイックアクションを追加できます。
  2. 新しいGitLabグループとプロジェクトを作成します:
    1. GitLabアカウントにサインインし、移行されたプロジェクトをホストするグループを作成します。
    2. 新しいグループで、移行されたJiraイシューを保持する新しいプロジェクトを作成します。
  3. JiraデータをGitLabにインポートします:
    1. 新しいGitLabプロジェクトで、左サイドバーのPlan > 作業アイテムを選択します。
    2. アクション ( ellipsis_v ) > Jiraからのインポートを選択します。
    3. 画面の指示に従ってインポートプロセスを完了します。
  4. 移行を確認します:
    1. インポートされたイシューをレビューして、プロジェクトがGitLabに正常に移行されたことを確認します。
    2. 移行されたJiraプロジェクトの機能をGitLabでテストします。
  5. ワークフローと設定を調整します:
    1. GitLabのプロジェクト設定を次のようにカスタマイズします:
    2. チームにGitLabインターフェースと、移行によって導入された新しいワークフローやプロセスを熟知させます。
  6. 移行に満足したら、Jiraインスタンスの廃止とGitLabへの完全な移行を行うことができます。

独自のスクリプトを作成

移行プロセスを完全に制御するために、ニーズに正確に適合する方法でJiraイシューをGitLabに移行する独自のカスタムスクリプトを作成できます。GitLabは、移行の自動化を支援するAPIを提供しています:

まず、以下のGitLab APIエンドポイントについて理解を深めてください:

スクリプトを作成する際は、Jiraイシューフィールドを対応するGitLabの同等フィールドにマッピングする必要があります。

Jiraイシューフィールド考えられるGitLabの同等物
オプションの数が固定されているカスタムフィールドフィールド名をスコープ付きラベルキーとして、フィールド値をスコープ付きラベルセットの値として設定したスコープ付きラベルセットを作成します。例: input name::value1input 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)