列挙型カスタムフィールドを作成し、プロジェクトに追加する
REST API を使用して、値のセットを持つ列挙型カスタムフィールドを作成し、そのフィールドを特定のプロジェクトに追加します。
REST API では、CustomField エンティティがフィールド自体を定義します。このフィールドをプロジェクトで使用できるようにするには、ProjectCustomField エンティティとしてプロジェクトに追加します。カスタムフィールドエンティティの詳細については、REST API のカスタムフィールドを参照してください。
要約
必要なデータが揃ったら、列挙型バンドルを作成し、このバンドルをデフォルトで使用するカスタムフィールドを作成して、そのカスタムフィールドをプロジェクトに追加します。
ステップバイステップ
列挙型カスタムフィールドを追加するプロジェクトの ID を取得します。手順については、プロジェクト ID を取得するを参照してください。この例では、エンティティ ID が
0-0のプロジェクトSample Projectを使用します。カスタムフィールドの値を格納する列挙型バンドルを作成します。列挙型バンドルを参照してください。
curl -X POST 'https://example.youtrack.cloud/api/admin/customFieldSettings/bundles/enum?fields=id,name,values(id,name)' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer <YouTrack_token>' \ -H 'Content-Type: application/json' \ -d '{ "name": "Customer Impact", "values": [ {"name": "Low", "$type": "EnumBundleElement"}, {"name": "Medium", "$type": "EnumBundleElement"}, {"name": "High", "$type": "EnumBundleElement"} ], "$type": "EnumBundle" }'リクエストが成功した場合、レスポンスには作成された列挙型バンドルが含まれます。
{ "values": [ { "name": "Low", "id": "67-12", "$type": "EnumBundleElement" }, { "name": "Medium", "id": "67-13", "$type": "EnumBundleElement" }, { "name": "High", "id": "67-14", "$type": "EnumBundleElement" } ], "name": "Customer Impact", "id": "86-10", "$type": "EnumBundle" }レスポンスから、作成されたバンドルのエンティティ ID を探します。この例では
86-10を使用します。列挙型カスタムフィールドを作成します。リクエスト本文で、
fieldTypeをenum[1]に設定し、デフォルトバンドルを前の手順で作成した列挙型バンドルに設定します。カスタムフィールドを作成するを参照してください。curl -X POST 'https://example.youtrack.cloud/api/admin/customFieldSettings/customFields?fields=id,name,fieldType(id),fieldDefaults(bundle(id,name),$type)' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer <YouTrack_token>' \ -H 'Content-Type: application/json' \ -d '{ "name": "Customer Impact", "fieldType": {"id": "enum[1]"}, "fieldDefaults": { "bundle": {"id": "86-10", "$type": "EnumBundle"}, "$type": "EnumBundleCustomFieldDefaults" } }'リクエストが成功した場合、レスポンスには作成されたカスタムフィールドが含まれます。
{ "name": "Customer Impact", "fieldType": { "id": "enum[1]", "$type": "FieldType" }, "fieldDefaults": { "bundle": { "name": "Customer Impact", "id": "86-10", "$type": "EnumBundle" }, "$type": "EnumBundleCustomFieldDefaults" }, "id": "58-80", "$type": "CustomField" }レスポンスから、作成したカスタムフィールドのエンティティ ID を探します。この例では
58-80を使用します。プロジェクトにカスタムフィールドを追加します。新しいプロジェクトを追加する CustomField を参照してください。
curl -X POST 'https://example.youtrack.cloud/api/admin/projects/0-0/customFields?fields=id,field(id,name),bundle(id,name,values(id,name),$type),canBeEmpty,isPublic' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer <YouTrack_token>' \ -H 'Content-Type: application/json' \ -d '{ "field": {"id": "58-80"}, "bundle": {"id": "86-10", "$type": "EnumBundle"}, "canBeEmpty": true, "isPublic": true, "$type": "EnumProjectCustomField" }'リクエストが成功した場合、レスポンスにはプロジェクトのカスタムフィールドが含まれます。
{ "field": { "name": "Customer Impact", "id": "58-80", "$type": "CustomField" }, "bundle": { "values": [ { "name": "Low", "id": "67-12", "$type": "EnumBundleElement" }, { "name": "Medium", "id": "67-13", "$type": "EnumBundleElement" }, { "name": "High", "id": "67-14", "$type": "EnumBundleElement" } ], "name": "Customer Impact", "id": "86-10", "$type": "EnumBundle" }, "canBeEmpty": true, "isPublic": true, "id": "105-80", "$type": "EnumProjectCustomField" }
その結果、列挙型カスタムフィールドは、列挙型バンドルの値とともに、対象プロジェクトで使用できるようになります。