JootoからBacklogへの移行ツール
本移行ツールを用いて、Jootoのデータを、Backlogのプロジェクトに移行できます。
目次
移行ができるデータ
- タスク
- 担当者
- タスクの件名、詳細
- 開始日、期限日
- 予定時間、実績時間
- リスト
- コメント
- ラベル
- チェックリスト
- 添付ファイル
必須要件
移行時に必要な情報
JootoのAPIキー
「組織」>「設定」>「その他」の項目にあるAPIキーの設定で設定ページから発行できます。Jooto APIは有料プランでのみ利用できます。
プロジェクト(ボード)のID
ボードのURLに含まれている数字です。
例:boardsに続く#の後ろの番号が、ボードのIDです。
https://app.jooto.com/boards#XXXXXX?organization_id=zzzzzz
管理者の権限を持つユーザーが発行したBacklogのAPIキー
- 移行先のプロジェクトを新規に作成する場合は、管理者の権限が必要です。
- 移行先のプロジェクトを既存のプロジェクトから指定する場合は、管理者、またはプロジェクト管理者ができます。BacklogのAPIキーの発行方法は新しいAPIキーを発行するを参照してください。
移行ツールのダウンロード
以下から、最新版の移行ツールをお手元の環境に併せてダウンロードしてください。
ダウンロード |
対象 |
Java |
|---|---|---|
| backlog-migration-jooto-macos-aarch64.zip | Appleシリコン(M1以降)のmacOS | 同梱 |
| backlog-migration-jooto-windows.zip | Windows | 同梱 |
Windows の場合
backlog-migration-jooto-0.1.0-windows.zip をダウンロードし、そのZipファイルを展開して
ください。
展開後、ターミナル内にて展開したフォルダまで移動してください。
cd backlog-migration-jooto-0.1.0 bin./backlog-migration-jooto.bat --help
Windows 11 の場合
展開したフォルダ内に移動します。
※展開時に使ったアプリケーションによって同じフォルダ名が入れ子になっていることが
あるので、その際は再度同名フォルダ内へ移動します
次に、ウィンドウ内の何もないところで右クリックをするとメニューが展開されるので、その
中から「ターミナルで開く」を実行します。
Windows 10 の場合
デスクトップ左下の検索バーをクリック、“cmd”と入力し、検索結果に表示される 「コマンド
プロンプト」をクリックして起動します。
上記展開したフォルダまで移動します。
binフォルダーにあるbacklog-migration-jooto.batを実行し、ヘルプが表示されるかお試しください。
macOS の場合
backlog-migration-jooto-0.1.0-macos-aarch64.zip をダウンロードし、そのZipファイル
を展開してください。
展開後、Terminal.app ターミナル内にて展開したフォルダまで移動してください。
※展開時に使ったアプリケーションによって同じディレクトリ名が入れ子になっていることがあります。その際は再度同名ディレクトリ内へ移動してください。
ターミナルにて以下のコマンドでヘルプが表示されるかお試しください。
cd backlog-migration-jooto-0.1.0 bin/backlog-migration-jooto --help
なお、このツールは実行したディレクトリにbacklog/、mapping/、log/が作成されます。
移行の手順
0. ユーザーをBacklogに招待する
移行ツールを実行する前に、Backlogにユーザーを招待しましょう。
移行を進めるため、CSV で一括でユーザーを招待する方法をお勧めします。招待が完了したら、その際、移行先のプロジェクトにユーザーを追加するために「チーム機能」を利用しましょう。
手順としては、以下のとおりです。
- チームを作成する
- 作成したチームを移行先のプロジェクトに追加する
- 作成したチームを、CSVでユーザーを招待する際に指定する
1. ボードを読み込む
以下のコマンドを実行してください。
以下の内容は、お客さまの情報に置き換えて実行ください。
- <YOUR_JOOTO_API_KEY>
- <YOUR_JOOTO_BOARD_ID>
- <YOUR_BACKLOG_SPACE>
- <YOUR_BACKLOG_API_KEY>
- <YOUR_BACKLOG_PROJECT_KEY>
Windows
bin./backlog-migration-jooto export ^ --jooto.key <YOUR_JOOTO_API_KEY> ^ --jooto.boardId <YOUR_JOOTO_BOARD_ID> ^ --backlog.url https://<YOUR_BACKLOG_SPACE>.backlog.com ^ --backlog.key <YOUR_BACKLOG_API_KEY> ^ --projectKey <YOUR_BACKLOG_PROJECT_KEY>
Mac
bin/backlog-migration-jooto export \ --jooto.key <YOUR_JOOTO_API_KEY> \ --jooto.boardId <YOUR_JOOTO_BOARD_ID> \ --backlog.url https://<YOUR_BACKLOG_SPACE>.backlog.com \ --backlog.key <YOUR_BACKLOG_API_KEY> \ --projectKey <YOUR_BACKLOG_PROJECT_KEY>
Jootoのプロジェクトと、Backlogのプロジェクトを紐づけるため、4つのcsvファイルが出力されます。
- mapping/users_list.csv
- mapping/users.csv
- mapping/statuses_list.csv
- mapping/statuses.csv
2. マッピングファイルを記入する
1の手順で出力された2つのマッピングファイルに、それぞれ以下を記載します。
mapping/users.csv
jootoのユーザーとBacklogのユーザーを紐づける作業です。BacklogユーザーIDの列を必ず記入する必要があります。BacklogユーザーIDに指定する値は「mapping/users_list.csv」から指定してください。
指定方法
users_list.csv内の「Name」の記載を、users.csvの「Backlog user id」に紐づけます。
例
Jootoの登録ユーザーであるAさんを、Backlogの登録ユーザーであるBさんと紐付ける
users_list.csv
Name,Email *XXXXXXXXX,b@nulab.com
users.csv
Jooto user id,Jooto user name,Jooto user email,Backlog user id 507191,a,a@nulab.com,*XXXXXXXXX
Jooto上で削除したユーザーは「退会したユーザー」という名称でusers.csvに出力されます。そのため、すでにJooto上には存在しないユーザーについても、データを移行するために紐づけるユーザーを設定してください。
mapping/statuses.csv
Jootoで利用していたリストと、Backlogの「状態」を紐づける作業です。csv内の「Backlog status name」に、紐付けたいBacklogの「状態」の名称を記載してください。デフォルトでは、Jootoで使用していたリスト名と同じ「状態」が作成され指定されています。以下のBacklogのデフォルトの状態に置き換えることも可能です。
- 未対応
- 処理中
- 処理済み
- 完了
置き換え先として指定する値は「mapping/statuses_list.csv」から指定してください。
例
Jootoで利用していた「リスト」という名称のリストに、Backlogの「未対応」の状態を紐付ける。
statuses_list.csv
Name 未対応 処理中 処理済み リスト
statuses.csv
Jooto list id,Jooto list name,Backlog status name xxxxxx,リスト,未対応
・Backlogのプロジェクトで追加できる「状態」の上限は8個です。デフォルトの状態は削除できません。
・リストが多い場合、リスト名をまとめる必要があります。対処方法については、状態が多すぎて入らないを参照してください。
3. Backlogに書き込む
以下のコマンドを実行し、Backlogにデータの移行を開始します。
以下の内容は、お客さまの情報に置き換えて実行ください。
- <YOUR_JOOTO_API_KEY>
- <YOUR_JOOTO_BOARD_ID>
- <YOUR_BACKLOG_SPACE>
- <YOUR_BACKLOG_API_KEY>
- <YOUR_BACKLOG_PROJECT_KEY>
Windows
bin./backlog-migration-jooto import ^ --backlog.url https://<YOUR_BACKLOG_SPACE>.backlog.com ^ --backlog.key <YOUR_BACKLOG_API_KEY> ^ --projectKey <YOUR_BACKLOG_PROJECT_KEY>
Mac
bin/backlog-migration-jooto import \ --backlog.url https://<YOUR_BACKLOG_SPACE>.backlog.com \ --backlog.key <YOUR_BACKLOG_API_KEY> \ --projectKey <YOUR_BACKLOG_PROJECT_KEY>
移行するデータの確認が求められるため、承認してください。
承認するとプロジェクトが作成され、データの移行が開始されます。
移行するデータ量が多い場合
データ量が多い場合や、移行する必要がないデータがある場合、移行対象のデータを除外することをご検討ください。また、データ量が多い場合、移行に時間がかかる可能性もあります。あらかじめご留意ください。
一部のデータを移行対象から除外する
--excludeコマンドを利用して、移行対象からデータを除外することができます。除外対象として指定できるデータは以下のとおりです。
- コメント (comment)
- チェックリスト (checklist)
- 添付ファイル (attachment)
- アーカイブしたタスク (archived)
例
--exclude comment
項目を「,」で区切ることで、複数指定することもできます。
アーカイブしたタスクに関して
Backlogにはjootoのアーカイブと同じ機能がありません。そのため、アーカイブ済みのJootoタスクを除外せずに移行した場合、以下の内容でタスクが移行されます。Jootoでアーカイブしたリストに含まれているタスクも同様です。
- 「状態」:完了
- 「カテゴリー」:アーカイブ
チェックリストを課題の詳細に書くか、子課題にするか
Backlogにはjootoのチェックリストと同じ利用が可能な機能がありません。そのため、課題の詳細にチェックリスト記法で記載するか、チェックリストに記載されていた内容を子課題で登録するかを--checklistで指定します。
--checklist description # 既定値 --checklist childIssue
課題の詳細にチェックリスト記法で記載する場合
descriptionを使用 します。項目のチェックは引き継がれ、項目ごとの担当者と日付も同じ行に書き出されます。タスクは1つの課題のままです。
子課題に移行する場合
childIssueを使用します。チェック済みの項目は完了の「状態」が指定された状態で作成されます。チェックリストの項目分、課題が作成されることをご認識の上実行してください。
移行後にどうデータが置き換わるか
Jootoで利用していた各データがBacklogのどこに移行されるかは、以下の表で確認してください。
Jooto |
Backlog |
|---|---|
| プロジェクト(ボード) | プロジェクト |
| リスト | 状態(手順2で割り当てたもの) |
| タスク | 課題 |
| コメント |
コメント(登録者と投稿時刻を保持)
|
| ラベル | カテゴリー |
| チェックリスト | 詳細のテキスト、または項目ごとの子課題 |
| 添付ファイル |
添付ファイル ※同じ名前の添付ファイルが同じタスクやコメントにある場合、2つ目以降は image (2).png のように番号付きの名前で移行されます。大文字と小文字だけが違う名前も同じ名前として扱われます。 |
| 担当者 |
課題の詳細に担当者全員が記載されて移行されます。 データを出力した際にデータ内に表示されている順番に@メンション付きで記載されます。最初に記載されている担当者が課題の担当者に設定されます。 |
移行するデータについて、以下ご了承ください。
- 作成日時と作成者は保持された状態で移行されます
- 課題の番号は引き継がれません。
- Jootoにない設定項目である「課題種別」や「優先度」は自動で設定されます。
- Jootoのデフォルトのラベルは、移行ツールを実施したマシンの言語設定により翻訳された名称で移行されます。
- リストの変更履歴は引き継がれません。
- Jootoでメンションを利用して行った通知は、Backlogに引き継がれます。そのため移行時に、紐づけたユーザーにメンションによる通知が送られます。もし通知を送りたくない場合は、テスト用のプロジェクトなどで移行を試してください。
- 子課題にするよう指定した場合を除き、親子関係はつきません。
- 見積時間と実績時間は、予定時間と実績時間として移行されます。
オプション
コマンドの実行に利用するオプションについて説明します。
オプション |
コマンド |
必須項目 |
用途 |
|---|---|---|---|
| --jooto.key | export | 必須 | JootoのAPIキー。 |
| --jooto.boardId | export | 必須 | ボードのURLに含まれる数字。 |
| --jooto.url | export | Jooto APIのURL。既定はhttps://api.jooto.comです。テスト環境以外では指定不要。 | |
| --backlog.url |
export import |
必須 | Backlogのスペース。https://YOUR_SPACE.backlog.comのような形式。 |
| --backlog.key |
export import |
必須 | BacklogのAPIキー。 |
| --projectKey |
export import |
必須 | 作成するプロジェクトキー。半角英大文字、数字、アンダースコアが使えます。 |
| --exclude | export | 移行しないもの: comment、checklist、attachment、archived。 | |
| --checklist | export | チェックリストの移行方法: description(既定)またはchildIssue。 | |
| --retryCount | import | Backlogへの呼び出しが失敗したときの再試行回数。既定は3。 | |
| --disableSslVerify |
export import |
TLSサーバー証明書の検証を無効にします。下記参照。 | |
| --help、--version |
export import |
ヘルプまたはバージョンを表示して終了します。 export --help 、 import -- help はコマンドごとのオプションを表示します。 |
プロキシ環境では、JootoとBacklogの両方について、通常のhttps.proxyHostとhttps.proxyPortのシステムプロパティが使われます。
Windows
bin./backlog-migration-jooto ^ -Dhttps.proxyHost=proxy.example.com ^ -Dhttps.proxyPort=8080 ^ export ...
Mac
bin/backlog-migration-jooto \ -Dhttps.proxyHost=proxy.example.com \ -Dhttps.proxyPort=8080 \ export ...
--disableSslVerifyは、Javaが信頼していない証明書でTLSを終端するプロキシのためのオプションです。両方のサービスについて証明書の検証を完全に無効にするため、APIキーが検証されていない経路を通ることになります。正しい対処は、プロキシのCA証明書をJavaに登録することです。それができない場合にのみ、このオプションを使ってください。
JootoのAPIレート制限
スタータープランでAPIを利用する際に設けられている、1か月あたりのレート上限は緩和されていますが、データ量により時間がかかる可能性があります。レート制限により実行が難しい場合は、一部のデータを移行対象から除外するを参照して移行するデータ量を減らしてください。
うまくいかないとき
月間の上限に達して停止してしまった
上限に達してリクエストが停止した場合、Backlogへのデータ移行は行われていないため、リクエスト数が戻るまでお待ちください。
もしくは、一部のデータを移行対象から除外するを参照して移行するデータ量を減らしてください。
すでに登録済みのデータとして移行対象から除外された
登録済みの課題と同様の課題と判断された場合、以下のエラーが表示され、移行対象から除外されます。
課題 [JOOTO-XXXX]は、すでに登録されているため読み飛ばします。
同様の課題かどうかは、以下の内容をもとに判断されます。
- 件名が同じ
- タスクの作成者が同じ
- 作成日時(秒単位)が同じ
もし登録したい課題が、上記のエラーで移行できない場合、新しいプロジェクトにあらためて移行してください。
状態が多すぎて登録ができない
Backlogの1つのプロジェクトに追加ができる「状態」の上限は8個です。mapping/statuses.csvで12個より多い状態が指定されている場合、データの処理は中止されます。
作成される「状態」の数が8個以内に収まるようファイルを編集してください。一部のJootoのリストを、Backlogのデフォルトの「状態(未対応、処理中、処理済み、完了)」に割り当てるか、複数のリストを同じ「状態」に割り当てることで、登録数を抑えることができます。
エラーが発生し、移行ができないときは
処理に失敗した場合は、エラーが返ります。移行ツールで返されるエラーについてはBacklog移行ツールでエラーが発生するを参照してください。
お問い合わせの際は以下を添えてご連絡ください。
- log/backlog-migration-warn.log
- log/backlog-migration.log
- 実行したコマンド(APIキーはマスキングしてください)