在Jira中怎么让自定义筛选器排除特定标签的issue?
最近在用Vue写项目管理工具时,需要从Jira拉取当前sprint的issue列表,但想排除所有带有”tech-debt”标签的条目。
我尝试在Jira的筛选器里设置”Labels does not contain tech-debt”,但实际返回的数据里还是夹杂着这些issue。这是我的请求代码:
// 使用axios调用Jira API
const issues = await axios.get('/rest/api/3/search', {
params: {
jql: 'sprint = "Sprint 15" AND labels != "tech-debt"',
fields: 'key,summary,labels'
}
});
控制台显示请求正常返回,但数据里仍然有标签为tech-debt的issue。我检查过Jira界面,标签字段确实存在且拼写正确。是不是JQL语法哪里写错了?或者Vue这边的处理有问题?
labels != "tech-debt"在 JQL 里其实不会排除所有带这个标签的 issue,因为 Jira 的 labels 字段是多值的,!=只匹配单值相等的情况,得用not labels in ("tech-debt")才行所以你的 JQL 应该是:
sprint = "Sprint 15" and not labels in ("tech-debt")注意:
in是 Jira JQL 处理多值字段的标准写法,!=在多值字段上经常不靠谱,这是踩过坑的老开发者亲测有效的写法labels not in ("tech-debt"),你用 != 只会排除标签为空的情况。改成这样应该能用: