課題を作成してカスタムフィールドを設定する
REST API を使用して新しい課題を作成し、1 つ以上のカスタムフィールドの値を設定します。
要約
カスタムフィールドに値を設定した課題を作成するには、以下のパラメーターを取得する必要があります。
新しい課題が属するプロジェクトのエンティティ ID。プロジェクト ID を取得するには、プロジェクト ID を取得するを参照してください。
設定する必要のあるカスタムフィールドの
nameおよび$typeカスタムフィールドに設定した値の
name
ステップバイステップ
次の手順は、新しい課題を作成し、いくつかの課題フィールドに値を設定する方法を示しています。サンプルでは、「Priority」フィールドと「Assignee」フィールドを設定することにしました。
課題を作成し、カスタムフィールドの値を設定するには
課題を作成するプロジェクトの ID を取得します。手順については、プロジェクト ID を取得するを参照してください。このサンプルでは、プロジェクト ID
0-0とプロジェクト略称SPを使用しています。設定する必要があるカスタムフィールドの名前と
$typeを取得します。クエリパラメーターを使用して/api/issuesエンドポイントに GET リクエストを送信できます。返される課題属性のリストを含む
fieldsパラメーター。このケースでは、カスタムフィールドに特に関心があります。次の文字列を使用できます。fields=project(name),idReadable,customFields(name,$type,value(name,login))結果をターゲットプロジェクトの課題に絞り込むには、
queryパラメーターを使用できます。例:query=in:SPは、特定のターゲットプロジェクトの結果を絞り込みます。オプションで、
$topクエリパラメーターを使用して、限られた数の課題を取得します。
結果のリクエストは次のとおりです。
curl -X GET \ 'https://example.youtrack.cloud/api/issues?fields=idReadable,id,project(id,name),summary,description,customFields(name,$type,value(name,login))&query=in:SP&$top=1' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <YouTrack_token>' \応答として、サーバーは次のデータを返しました。
[ { "idReadable": "SP-47", "project": { "name": "Sample Project", "id": "0-0", "$type": "Project" }, "customFields": [ { "value": { "name": "Show-stopper", "$type": "EnumBundleElement" }, "name": "Priority", "$type": "SingleEnumIssueCustomField" }, { "value": { "name": "Task", "$type": "EnumBundleElement" }, "name": "Type", "$type": "SingleEnumIssueCustomField" }, { "value": { "name": "Open", "$type": "StateBundleElement" }, "name": "State", "$type": "StateIssueCustomField" }, { "value": { "login": "jane.doe", "name": "Jane Doe", "$type": "User" }, "name": "Assignee", "$type": "SingleUserIssueCustomField" }, { "value": null, "name": "Subsystem", "$type": "SingleOwnedIssueCustomField" }, { "value": [], "name": "Fix versions", "$type": "MultiVersionIssueCustomField" }, { "value": [], "name": "Affected versions", "$type": "MultiVersionIssueCustomField" }, { "value": null, "name": "Fixed in build", "$type": "SingleBuildIssueCustomField" } ], "$type": "Issue" } ]このレスポンスから、利用可能なフィールドとそのタイプの一覧を確認できます。また、課題カスタムフィールドで利用可能なタイプの完全なリストは、このページから取得できます。
ターゲットカスタムフィールドに設定する値の名前を取得します。一般に、値の名前、つまり UI での値の表示方法を知るだけで十分です。例: 優先度フィールドのショーストッパーまたはメジャー、または状態フィールドの進行中または固定。ただし、修正バージョンや担当者などの一部のフィールドでは、使用可能な値のリストが明確でない場合があります。この場合、ターゲットプロジェクトのこの特定のフィールドに使用される値のセット(バンドル)を取得する必要があります。
新しい課題を作成するには、それを特定のユーザーに割り当て、その「優先度」フィールドを
Show-stopperに設定し、プロジェクトの ID、新しい課題の要約、customFieldsの json オブジェクトを含む本文でPOSTリクエストを送信します。以下を含む属性:優先度フィールドの
name、$type、value担当者フィールドの
name、$type、value
description属性は必須ではありませんが、指定することも選択しました。結果のリクエストは次のとおりです。curl -X POST \ https://example.youtrack.cloud/api/issues \ -H 'Accept: application/json' \ -H 'Authorization: Bearer <YouTrack_token>' \ -H 'Content-Type: application/json' \ -d '{ "project":{"id":"0-0"}, "summary":"REST API lets you create issues!", "description":"Let'\''s create a new issue using YouTrack'\''s REST API.", "customFields":[ { "name":"Priority","$type":"SingleEnumIssueCustomField","value":{"name":"Show-stopper"}}, { "name": "Assignee","$type": "SingleUserIssueCustomField","value": {"login":"jane.doe"}} ] }'リクエストで
fieldsパラメーターを指定しなかったため、サーバーは作成された課題のエンティティ ID とその $type のみをレスポンスで返します。{ "id": "2-38", "$type": "Issue" }