JSON からのデータのインポート
JSON インポート機能を使用すると、CSV ファイルにエクスポートできない外部課題トラッカーの課題をインポートできます。Jira Importers プラグインでは、Jira REST API を使用する場合のインポート形式よりもシンプルなものを利用します。
推奨データ サイズ
大規模なプロジェクトをインポートする際は、データを分割してパフォーマンスの問題を軽減し、インポート速度を最適化することをおすすめします。
ファイルあたりの推奨される課題数 | 1500 件の課題 |
---|---|
インポートにかかる推定時間 | 約 1 時間 (これはデータと設定のサイズと複雑さによっても異なります) |
インポート用 JSON ファイルの作成
現在の課題トラッキング システムで JSON 形式でのエクスポートができない場合、ファイルを手動で作成することをお勧めします。JSON ファイルを準備するには、標準の JSON 形式を使用し、次のパターンに従ってください。
// JSON File Example
{
"users": [
{
"name": "abcde-12345-fedcba"
},
{
"name": "edcba-12345-abcdef"
}
],
"links": [
{
"name": "sub-task-link",
"sourceId": "2",
"destinationId": "1"
},
{
"name": "Duplicate",
"sourceId": "3",
"destinationId": "2"
}
],
"projects": [
{
"name": "A Sample Project",
"key": "ASM",
"description": "JSON file description",
"versions": [
{
"name": "1.0",
"released": true,
"releaseDate": "2012-08-31T15:59:02.161+0100"
},
{
"name": "2.0"
}
],
"components": [
"Component",
"AnotherComponent"
],
"issues": [
{
"priority": "Major",
"description": "Some nice description here\nMaybe _italics_ or *bold*?",
"status": "Closed",
"reporter": "abcde-12345-fedcba",
"labels": [
"impossible",
"to",
"test"
],
"watchers": [
"abcde-12345-fedcba"
],
"issueType": "Bug",
"resolution": "Resolved",
"created": "2012-08-31T17:59:02.161+0100",
"updated": "2012-08-31T17:59:02.161+0100",
"affectedVersions": [
"1.0"
],
"summary": "My chore for today",
"assignee": "abcde-12345-fedcba",
"fixedVersions": [
"1.0",
"2.0"
],
"components": [
"Component",
"AnotherComponent"
],
"externalId": "1",
"history": [
{
"author": "abcde-12345-fedcba",
"created": "2012-08-31T15:59:02.161+0100",
"items": [
{
"fieldType": "jira",
"field": "status",
"from": "1",
"fromString": "Open",
"to": "5",
"toString": "Resolved"
}
]
}
],
"customFieldValues": [
{
"fieldName": "Story Points",
"fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float",
"value": "15"
},
{
"fieldName": "Business Value",
"fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float",
"value": "34"
}
],
"attachments": [
{
"name": "battarang.jpg",
"attacher": "bob@example.com",
"created": "2012-08-31T17:59:02.161+0100",
"uri": "http://optimus-prime/~batman/images/battarang.jpg",
"description": "This is optimus prime"
}
]
},
{
"status": "Open",
"reporter": "abcde-12345-fedcba",
"issueType": "Sub-task",
"created": "P-3D",
"updated": "P-1D",
"summary": "Sub-task",
"externalId": "2"
},
{
"status": "Closed",
"reporter": "abcde-12345-fedcba",
"issueType": "Sub-task",
"created": "P-3D",
"updated": "P-1D",
"resolution": "Duplicate",
"summary": "Duplicate Sub-task",
"externalId": "3"
}
]
}
]
}
インポートされた課題の修正バージョンを指定するには、上記の例のように、fixVersions
を issues
オブジェクトに、versions
を projects
オブジェクトに含めるようにします。
カスタム フィールド
JSON Importers プラグインではカスタムフィールドがサポートされています。次に、JIRA で用意されているカスタムフィールドの一覧を示します。 カスタムフィールドのがある追加のプラグインをインストールしている場合はそれらのフィールドもサポートされますが、この一覧には含まれていません。
com.atlassian.jira.plugin.system.customfieldtypes:textfield
com.atlassian.jira.plugin.system.customfieldtypes:textarea
com.atlassian.jira.plugin.system.customfieldtypes:datepicker
com.atlassian.jira.plugin.system.customfieldtypes:datetime
com.atlassian.jira.plugin.system.customfieldtypes:float
com.atlassian.jira.plugin.system.customfieldtypes:select
com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons
com.atlassian.jira.plugin.system.customfieldtypes:project
com.atlassian.jira.plugin.system.customfieldtypes:multiversion
com.atlassian.jira.plugin.system.customfieldtypes:version
com.atlassian.jira.plugin.system.customfieldtypes:userpicker
com.atlassian.jira.plugin.system.customfieldtypes:url
com.atlassian.jira.plugin.system.customfieldtypes:multiselect
com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes
com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker
com.atlassian.jira.plugin.system.customfieldtypes:multigrouppicker
com.atlassian.jira.plugin.system.customfieldtypes:grouppicker
com.atlassian.jira.plugin.system.customfieldtypes:cascadingselect
com.atlassian.jira.plugin.system.customfieldtypes:readonlyfield
com.atlassian.jira.plugin.system.customfieldtypes:labels
com.pyxis.greenhopper.jira:gh-sprint
次のカスタムフィールドの例では、カスタムフィールドを追加するための構文を示しています。カスケード型カスタムフィールドの例も含まれます。前の一覧にカスタムフィールドがない場合は、「カスタムフィールドの設定」ページでソース HTML を調べて "fieldType" を取得できます。"value" は各カスタムフィールドに固有です。これは、「課題の編集」ページでソース HTML を調べることで確認できます。
Custom field example
"customFieldValues": [
//Custom fields which accept single values:
{
"fieldName": "My Awesome Text Field (single line)",
"fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield",
"value": "some text"
},
{
"fieldName": "My Awesome Select List (single choice)",
"fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select",
"value": "some select"
},
//Custom fields which accept multiple values:
{
"fieldName": "My Awesome Checkboxes",
"fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes",
"value": [ "multiple", "checkboxes" ]
},
{
"fieldName": "My Awesome User Picker (multiple users)",
"fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker",
"value": [ "admin", "fred" ]
},
//Custom fields which accepts options in hierarchy (cascading select fields):
{
"fieldName": "My Awesome Select List (cascading)",
"fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:cascadingselect",
"value": { "": "Parent Value", "1": "Child Value" }
}
]
JSON ファイルの具体例
次に、JSON ファイルの具体例を示します。
ユーザー
この例ではフルユーザーに対応し、、2つのグループが指定されています。グループが存在しない場合、Jira Importers プラグインによって作成されます。
User example
"users": [
{
"name" : "abcde-12345-fedcba",
"groups" : [ "jira-users", "my-custom-group" ],
"active" : true,
"email" : "user1@example.com",
"fullname" : "User 1"
}
]
プロジェクト キーと課題キー
プロジェクトと課題の両方にキーを割り当てることができます。これらのキーは異なっていてかまいません。この例では、1 つの課題があるプロジェクト "SAM-123" が作成されます。
Project key and issue key example
{
"projects": [
{
"name": "Sample data",
"key": "SAM",
"issues": [
{
"key" : "SAM-123",
"status" : "Open",
"reporter" : "abcde-12345-fedcba",
"summary" : "Parent case",
"externalId": "123"
}
]
}
]
}
コメント
この例では、課題について複数のコメントをインポートする方法を示しています。
Comment example
{
"projects": [
{
"name": "Sample data",
"key": "SAM",
"issues": [
{
"status" : "Open",
"reporter" : "abcde-12345-fedcba",
"summary" : "Parent case",
"externalId": "1",
"comments": [
{
"body": "This is a comment from admin 5 days ago",
"author": "abcde-12345-fedcba",
"created": "2012-08-31T17:59:02.161+0100"
},
{
"body": "This is a comment from admin 1 day ago",
"author": "abcde-12345-fedcba",
"created": "2012-08-31T17:59:02.161+0100"
}
]
}
]
}
]
}
この例は、Jira Service Management 製品専用の公開コメントの表示設定をインポートする方法を示しています。
"comments": [
{
"body": "This public comment",
"author": "557057:1a8aeee5-40e9-413a-9f4e-2f074f09644a",
"created": "2012-08-31T17:59:02.161+0100",
"updated": "2012-08-31T17:59:02.161+0100",
"properties":[{"key":"sd.public.comment","value":{"internal":"false"}}]
}
]
この例は、Jira Service Management 製品専用の非公開コメントの表示設定をインポートする方法を示しています。
"comments": [
{
"body": "This private comment",
"author": "557057:1a8aeee5-40e9-413a-9f4e-2f074f09644a",
"created": "2012-08-31T17:59:02.161+0100",
"updated": "2012-08-31T17:59:02.161+0100",
"properties":[{"key":"sd.public.comment","value":{"internal":"true"}}]
}
]
作業ログ
この例では、作業ログの詳細をインポートするための構文を示しています。
Worklog example
"worklogs": [
{
"author": "abcde-12345-fedcba",
"comment": "Worklog",
"startDate": "2012-08-31T17:59:02.161+0100",
"timeSpent": "PT1M"
},
{
"author": "abcde-12345-fedcba",
"startDate": "2012-08-31T17:59:02.161+0100",
"timeSpent": "PT3H"
}
]
Component
JSON ファイルでコンポーネントを指定する方法は2通りあります。名前を指定する方法とオブジェクトを指定する方法です。この例では両方を示しています。Jira Importers プラグインでは、常に「既定の担当者」が「プロジェクトの既定」に設定された新規コンポーネントが作成されます。ユーザーは「既定の担当者」を指定できないからです。
Component example
"components": [
"Component", //Component specified only by name
{ // Component specified by object
"name": "edcba-12345-abcdef",
"lead": "abcde-12345-fedcba",
"description": "Some description"
}
]
タイムトラッキング付きの課題
課題とともに、タイム トラッキングの詳細をインポートできます。この例では、タイム トラッキングの詳細情報を含む課題を示しています。"originalEstimate"、"timeSpent"、"estimate" の値は Period 形式 (Format ISO_8601 - Durations) にする必要があります。"startDate" の値には DateTime と Period 形式の両方を使用できます。
インポートを開始する前に、Jira でタイムトラッキングが有効になっていることを確認してください。有効になっていない場合、インポート中に Jira Importers プラグインでデータが無視されます。
Issues with time tracking
"issues": [
{
"summary" : "My Example Time Tracking issue",
"externalId": "1",
"originalEstimate": "P1W3D",
"timeSpent": "PT4H",
"estimate": "P2D",
"worklogs": [
{
"author": "abcde-12345-fedcba",
"comment": "Worklog",
"startDate": "P-1D", //can be a Period or DateTime
"timeSpent": "PT1M"
},
{
"author": "abcde-12345-fedcba",
"startDate": "2014-01-14T17:00:00.000+0100",
"timeSpent": "PT3H"
}
]
}
]
Sprint
この例では、"New Sprint" という名前の新規スプリントが JSON ファイルから直接作成され、rapidViewId
= 30 としてボードに追加されます。スプリントがクローズされている場合、state パラメーターにそのデータを含めます (任意)。スプリントの状態には以下のいずれかを使用できます。
• 「FUTURE」(既定値)
• 「ACTIVE」
• 「CLOSED」
アクティブなスプリントやクローズされたスプリントをインポートする際は、開始時刻と完了予定時刻を表す、開始日と終了日を指定する必要があります。クローズされたスプリントについては、完了日も指定する必要があります。
Sprint
{
"projects": [
{
"name": "Project",
"key": "KEY",
"issues": [
{
"externalId": "51",
"priority" : "High",
"description" : "Test JSON import",
"status" : "TO DO",
"reporter" : "abcde-12345-fedcba",
"issueType" : "Bug",
"summary" : "Test JSON import",
"customFieldValues": [
{
"fieldName": "Sprint",
"fieldType": "com.pyxis.greenhopper.jira:gh-sprint",
"value": [
{
"rapidViewId": 30,
"state": CLOSED",
"startDate": "2018-01-01",
"endDate": "2018-01-01",
"completeDate": "2018-01-01",
"name": "New Sprint"
}
]
}
]
}
]
}
]
}
日付の表現には、SimpleDateFormat "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
(出力例: "2012-08-31T15:59:02.161+0100"
)、または "P-1D" (1 日前) などの相対日付を使用できます。
JSON File Import Wizard の実行
> [システム] の順に選択します。
[外部システム インポート] > [JSON] の順に選択します。
JSON オプションが表示されない場合は、新しいインポート エクスペリエンスを使用している可能性があります。JSON ファイル インポート ウィザードを使用するには、[旧エクスペリエンスに切り替える ] を選択します。
JSON ファイルを選択し、インポートの開始をクリックします。
JSON ファイルがコメント付きの Jira Service Management プロジェクトで構成されている場合は、JSON インポート後にインポート ファイルのすべてのコメントが公開されます。
インポートで問題が生じた (または関心がある) 場合は、詳細なログをダウンロードするように選択して、JSON ファイルのインポート プロセスに関する詳細を表示できます。
この内容はお役に立ちましたか?