You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取指定项目下带特定标签的所有Jira问题?

Jira API 常见问题解决方案

1. 获取项目全部问题(突破50条限制)

get_project_issuekey_all默认分页返回,每页最多50条。要拿到全部结果,需通过分页参数循环请求,直到没有新数据返回:

all_issue_keys = []
start_at = 0
while True:
    batch_issues = jira.get_project_issuekey_all("project_name", startAt=start_at)
    if not batch_issues:
        break
    all_issue_keys.extend(batch_issues)
    start_at += len(batch_issues)

每次请求用startAt指定起始位置,累加已获取的问题数量作为下一次的起始点,直到返回的结果为空,就说明已经拿到所有数据。

2. 检查Jira问题是否包含特定标签

用jira.issue_field_value拿到标签列表后,直接用Python的in运算符判断目标标签是否存在:

issue_labels = jira.issue_field_value('ISSUE-123', 'labels')
target_label = "bug"
if target_label in issue_labels:
    print("该问题包含目标标签")
else:
    print("该问题不包含目标标签")

注意标签大小写敏感,要和Jira系统里的标签完全匹配。

3. 获取指定项目下带特定标签的所有问题

最高效的方式是直接用JQL查询,一次性过滤出符合条件的问题,避免先拉取所有问题再筛选:

jql_query = 'project = "project_name" AND labels = "target_label"'
matching_issues = jira.search_issues(jql_query, maxResults=False)
# 提取所有符合条件的issue key
issue_keys = [issue.key for issue in matching_issues]

maxResults=False会自动处理分页,返回所有符合条件的结果。如果一定要结合前两个方法,也可以先拿到全部项目issue key,再逐个检查标签(适合数据量小的场景):

matching_issue_keys = []
start_at = 0
target_label = "bug"
while True:
    batch_issues = jira.get_project_issuekey_all("project_name", startAt=start_at)
    if not batch_issues:
        break
    for issue_key in batch_issues:
        labels = jira.issue_field_value(issue_key, 'labels')
        if target_label in labels:
            matching_issue_keys.append(issue_key)
    start_at += len(batch_issues)

内容的提问来源于stack exchange,提问作者dluisely

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 11:16:56