使用jira-client 6.21修改Jira工时剩余估计字段报400错误如何解决
报错核心原因
你遇到的Field 'timetracking' cannot be set报错本质是Jira服务端校验不通过,常见原因有三类:
- 字段配置缺失:
timetracking字段未添加到对应问题类型的编辑界面中 - 权限不足:API调用使用的账号没有编辑该问题工时的权限
- 状态限制:Jira工作流配置了「已关闭」状态下问题不可编辑,或单独限制了关闭状态下工时字段的编辑权限
解决方案
方案1:调整Jira配置(永久生效)
找你的Jira管理员完成以下配置:
- 进入对应项目的「项目设置」-「界面」,找到目标问题类型对应的编辑界面方案,确认
timetracking字段已添加到编辑界面 - 进入工作流配置页面,找到「已关闭」状态的属性配置,如果存在
jira.issue.editable = false的配置,可根据需求删除该限制,或调整为仅允许特定角色编辑 - 确认API账号具备对应项目的「编辑问题」和「编辑工时」权限
配置完成后使用以下代码调用即可生效:
await jira.updateIssue(issueKey, { fields: { timetracking: { remainingEstimate: '1h' // 替换为你需要设置的剩余工时值,支持m/h/d单位 } } })
方案2:使用新增工时日志的方式(无需改动配置,临时可用)
如果不想改动Jira全局配置,可以调用新增工时日志的接口直接调整剩余工时,该接口不受编辑界面配置限制:
await jira.addWorklog(issueKey, { timeSpent: '0m', // 不新增已花费工时 adjustEstimate: 'new', // 标记为设置新的剩余工时 newEstimate: '1h' // 替换为你需要设置的剩余工时值 })
内容的提问来源于stack exchange,提问作者sergey_s
相关产品推荐
相关产品推荐

