カスタムフィールドの値セットを置き換える
REST API を使用して、特定のプロジェクト内のカスタムフィールドで使用可能な値のセットを置き換えます。REST API では、カスタムフィールドの値のセットはバンドルエンティティによって表されます。
この操作は、プロジェクトのカスタムフィールドに割り当てられている値のセットを置き換えます。元のセット内の値は編集されません。フィールドにすでに割り当てられている値のセットに値を追加するには、セットに値を追加するを参照してください。
公開 REST API エンドポイントの詳細については、プロジェクトのカスタムフィールドを参照してください。
要約
必要なエンティティ ID を取得したら、このエンドポイントに POST リクエストを送信して、セットを置き換えてください。
リクエスト本文において、bundle 属性に、置換セットの id と $type を含むオブジェクトを設定します。
ステップバイステップ
カスタムフィールドの値セットを置き換えるプロジェクトの ID を取得します。手順については、プロジェクト ID を取得するを参照してください。この例では、エンティティ ID が
0-121のプロジェクトSample Projectを使用します。対象プロジェクトにアタッチされているカスタムフィールドのリストを取得します。プロジェクトのカスタムフィールドを参照してください。
curl -X GET 'https://example.youtrack.cloud/api/admin/projects/0-121/customFields?fields=id,field(name,fieldType(valueType)),bundle(id,name,$type)' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer <YouTrack_token>' \ -H 'Content-Type: application/json'このようなリクエストに対して、サーバーからは以下の内容を含むレスポンスが返されます。
[ { "bundle": { "name": "Default Priorities", "id": "86-125", "$type": "EnumBundle" }, "field": { "name": "Priority", "fieldType": { "valueType": "enum", "$type": "FieldType" }, "$type": "CustomField" }, "id": "105-1088", "$type": "EnumProjectCustomField" }, { "bundle": { "name": "Types", "id": "85-12", "$type": "EnumBundle" }, "field": { "name": "Type", "fieldType": { "valueType": "enum", "$type": "FieldType" }, "$type": "CustomField" }, "id": "105-1089", "$type": "EnumProjectCustomField" } ]レスポンスの中で、置換したい値のセットを持つフィールドを探します。この例では、エンティティ ID が
105-1088であるPriorityフィールドを使用します。対象フィールドの値セットに対応する現在の API エンティティタイプを確認してください。置換後の値セットも、同じ API エンティティタイプである必要があります。
フィールド値の型
値のセット API エンティティ
enumstateversionownedFieldbuilduserフィールドタイプで使用可能な値セットのリストを取得します。列挙型フィールドの場合は、列挙型値セットのエンドポイントを使用してください。列挙型バンドルを参照してください。
curl -X GET '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'そのようなリクエストの場合、次のボディを使用してサーバーからレスポンスを取得します。
[ { "values": [ { "name": "Show-stopper", "id": "67-0", "$type": "EnumBundleElement" }, { "name": "Critical", "id": "67-1", "$type": "EnumBundleElement" } ], "name": "Default Priorities", "id": "86-125", "$type": "EnumBundle" }, { "values": [ { "name": "Major", "id": "67-2", "$type": "EnumBundleElement" }, { "name": "Normal", "id": "67-3", "$type": "EnumBundleElement" } ], "name": "Priorities", "id": "86-126", "$type": "EnumBundle" } ]レスポンス内で置換セットを探します。この例では、エンティティ ID が
86-126であるEnumBundleエンティティで表されるセットを使用します。対象プロジェクトのカスタムフィールドの設定を、
POSTリクエストに置き換えます。curl -X POST 'https://example.youtrack.cloud/api/admin/projects/0-121/customFields/105-1088?fields=id,field(name),bundle(id,name,values(id,name),$type),hasRunningJob' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer <YouTrack_token>' \ -H 'Content-Type: application/json' \ -d '{"bundle": {"id": "86-126", "$type": "EnumBundle"}}'リクエストが成功した場合、レスポンスには、プロジェクトカスタムフィールドと、それに現在関連付けられているセットが含まれます。
{ "bundle": { "name": "Priorities", "id": "86-126", "values": [ { "name": "Major", "id": "67-2", "$type": "EnumBundleElement" }, { "name": "Normal", "id": "67-3", "$type": "EnumBundleElement" } ], "$type": "EnumBundle" }, "field": { "name": "Priority", "$type": "CustomField" }, "hasRunningJob": false, "id": "105-1088", "$type": "EnumProjectCustomField" }オプション。置換後にプロジェクトのカスタムフィールドを確認してください。
curl -X GET 'https://example.youtrack.cloud/api/admin/projects/0-121/customFields/105-1088?fields=id,field(name),bundle(id,name,$type),hasRunningJob' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer <YouTrack_token>' \ -H 'Content-Type: application/json'そのようなリクエストの場合、次のボディを使用してサーバーからレスポンスを取得します。
{ "bundle": { "name": "Priorities", "id": "86-126", "$type": "EnumBundle" }, "field": { "name": "Priority", "$type": "CustomField" }, "hasRunningJob": false, "id": "105-1088", "$type": "EnumProjectCustomField" }hasRunningJobがtrueである場合は、そのフィールドのバックグラウンド処理が完了するまで、このフィールドへの変更は行わないでください。
その結果、プロジェクト内の対象となるカスタムフィールドは、置換された値セットを使用するようになります。