JSON からのデータのインポート

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

JSON インポート機能を使用すると、CSV ファイルにエクスポートできない外部課題トラッカーの課題をインポートできます。Jira Importers プラグインでは、Jira REST API を使用する場合のインポート形式よりもシンプルなものを利用します。

インポート用 JSON ファイルの作成

現在の課題トラッキングシステムで JSON 形式のエクスポートができない場合、ファイルを手動で作成できます。JSON ファイルを準備するには、標準の JSON 形式を使用し、次のパターンに従ってください。

JSON ファイルの例
{
    "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" : "P-1D",
                    "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"
                }
            ]
        }
    ]
}
tip/resting Created with Sketch.

インポートされた課題の修正バージョンを指定するには、上記の例のように、fixVersionsissues オブジェクトにversionsprojects オブジェクトに含めるようにします。


カスタムフィールド

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 を調べることで確認できます。

カスタム フィールドの例
"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 ファイルの具体例を示します。

Users

この例ではフルユーザーに対応し、、2つのグループが指定されています。グループが存在しない場合、Jira Importers プラグインによって作成されます。

ユーザーの例
"users": [ 
	{
        "name" : "abcde-12345-fedcba",
        "groups" : [ "jira-users", "my-custom-group" ],
        "active" : true,
        "email" : "user1@example.com",
        "fullname" : "User 1"
	}
]

プロジェクト キーと課題キー

プロジェクトと課題の両方にキーを割り当てることができます。これらのキーは異なっていてかまいません。この例では、1つの課題があるプロジェクト "SAM-123" が作成されます。

プロジェクト キーと課題キーの例
{
    "projects": [
        {
            "name": "Sample data",
            "key": "SAM",
            "issues": [
                {
					"key" : "SAM-123",
                    "status" : "Open",
                    "reporter" : "abcde-12345-fedcba",
                    "summary" : "Parent case",
                    "externalId": "123"
                }
            ]
        }
    ]
}

コメント

この例では、課題について複数のコメントをインポートする方法を示しています。

コメントの例
{
    "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"
                        }
                    ]
                }
            ]
        }
    ]
}

作業ログ

この例では、作業ログの詳細をインポートするための構文を示しています。

作業ログの例
"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 プラグインでは、常に「既定の担当者」が「プロジェクトの規定」に設定された新規コンポーネントが作成されます。ユーザーは「既定の担当者」を指定できないからです。

コンポーネントの例
"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": [
    {
        "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

In this example, a new sprint named "New Sprint" is created directly from the JSON file and added to the board with rapidViewId = 30. If the sprint is closed, include this data in the state parameter (optional). The sprint state may be one of:


• "FUTURE" (the default)
• "ACTIVE"
• "CLOSED"


When importing an active or closed sprint, it's required for the start and end dates to be present - representing the start time and planned completion time. For closed sprints, the completion date is also required.



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 の実行

  1. Jira アイコン (、または ) > [Jira 設定] > [システム] を選択します。
  2. 外部システム インポートをクリックし、JSON を選択します。
  3. JSON ファイルを選択し、インポートの開始をクリックします。

インポートで問題が生じた場合 (または関心がある場合)、詳細ログのダウンロードをクリックして、JSON ファイルのインポートプロセスに関する詳細情報を表示できます。

最終更新日 2019 年 11 月 4 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.