如何通过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
相关产品推荐
相关产品推荐

