使用AzureDevOps TypeScript SDK时,如何通过REST API创建工作项新字段?
在Azure DevOps扩展中创建自定义工作项字段
微软官方的Azure DevOps TypeScript SDK确实没有封装创建工作项字段的方法——因为字段是项目集合级的配置资源,不属于单个工作项的操作范畴,你需要直接调用Work Item Tracking (WIT) 的字段管理REST API来实现。
具体实现方式
- 核心API端点:
POST https://dev.azure.com/{organization}/_apis/wit/fields?api-version=7.1-preview.2(API版本可根据你的Azure DevOps实例调整) - 认证:如果是在扩展内调用,直接用扩展SDK的
getAccessToken()获取令牌;如果是独立脚本,使用PAT(格式为Authorization: Basic {base64编码的PAT字符串}) - 请求体必填项:必须指定字段的唯一引用名、显示名称、数据类型,可选配置描述、是否必填、可排序性等
TypeScript代码示例(扩展内调用)
import { getAccessToken } from "azure-devops-extension-sdk"; async function createCustomWorkItemField( orgUrl: string, displayName: string, referenceName: string, fieldType: string = "String" ) { const accessToken = await getAccessToken(); const apiEndpoint = `${orgUrl}/_apis/wit/fields?api-version=7.1-preview.2`; const fieldConfig = { name: displayName, referenceName: referenceName, type: fieldType, description: "自定义业务字段", isRequired: false, canSortBy: true, canQuery: true }; const response = await fetch(apiEndpoint, { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `Bearer ${accessToken}` }, body: JSON.stringify(fieldConfig) }); if (!response.ok) { throw new Error(`创建失败: ${await response.text()}`); } return await response.json(); } // 使用示例 // createCustomWorkItemField("https://dev.azure.com/your-org", "客户编号", "Custom.CustomerId", "String")
重要注意事项
- 权限要求:必须拥有项目集合管理员权限,否则会返回403错误
- 引用名规则:必须全局唯一,建议使用
Custom.{字段标识}的格式,避免与系统字段冲突 - 字段类型:支持
String、Integer、DateTime、Boolean、PlainText等类型,需符合Azure DevOps的字段类型规范 - 后续配置:字段创建后,需要将其添加到目标工作项类型的表单布局中(可通过WIT配置API或UI操作),才能在工作项中使用
内容的提问来源于stack exchange,提问作者Jakub
相关产品推荐
相关产品推荐

