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

如何通过Atlassian Python SDK遍历JIRA查询结果的后续分页?

解决Atlassian Python SDK获取全部JIRA问题的分页遍历方法

Atlassian Python API的jql()方法支持传入startAt和maxResults参数(对应JIRA REST API的同名参数),通过循环调用并递增startAt,就能遍历获取所有符合条件的JIRA问题。

实现步骤:

  • 初始化Jira客户端后,定义分页参数:起始位置start_at(初始为0)、单次最大返回数max_results(建议设为100,JIRA API允许的最大值)
  • 循环调用jira.jql(),每次传入当前的startAt和maxResults
  • 将每次返回的问题列表合并到总列表中,直到获取的问题数量为0,或起始位置超过总问题数

完整代码示例:

from atlassian import Jira

# 初始化Jira客户端
jira = Jira(
    url='https://your-site.atlassian.net',
    username='email',
    password='token',
    cloud=True)

jql_request = 'project = WSP AND issuetype = Story'
all_issues = []
start_at = 0
max_results = 100  # JIRA API单次返回的最大数量

while True:
    # 传入分页参数调用jql方法
    issues_response = jira.jql(jql_request, startAt=start_at, maxResults=max_results)
    current_issues = issues_response.get('issues', [])
    
    if not current_issues:
        break  # 没有更多问题,退出循环
    
    all_issues.extend(current_issues)
    total_issues = issues_response.get('total', 0)
    start_at += max_results
    
    # 如果起始位置超过总问题数,提前退出
    if start_at >= total_issues:
        break

print(f"共获取到 {len(all_issues)} 个JIRA问题")
# 后续可处理all_issues中的数据

关键说明:

  • startAt:指定从第几个问题开始返回(索引从0开始)
  • maxResults:控制单次请求返回的问题数量,最大值为100,设置这个值能减少请求次数,提升效率
  • 每次循环后更新start_at,并通过返回结果中的total字段判断是否还有未获取的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:53:20