Pagination¶
The Jira API paginates large result sets using startAt / maxResults / total.
Manual Pagination¶
Control the pagination yourself by specifying start_at and max_results:
start = 0
page_size = 100
while True:
results = client.search.jql(
'project = PROJ',
start_at=start,
max_results=page_size,
)
for issue in results.issues:
process(issue)
start += len(results.issues)
if start >= results.total:
break
Auto-Pagination¶
The jql_paginated method returns an iterator that transparently fetches pages as you consume results:
# Sync
for issue in client.search.jql_paginated('project = PROJ', page_size=100):
print(issue.key)
# Collect all into a list
all_issues = list(client.search.jql_paginated('project = PROJ'))
Async¶
async for issue in client.search.jql_paginated('project = PROJ'):
print(issue.key)
Using Paginator Directly¶
The Paginator and AsyncPaginator classes are generic iterators you can use for any paginated operation:
from pyjira.pagination import Paginator
def fetch_page(start_at, max_results):
results = client.search.jql('...', start_at=start_at, max_results=max_results)
return results.issues, results.total
for issue in Paginator(fetch_page, page_size=50):
print(issue.key)
AsyncPaginator¶
from pyjira.pagination import AsyncPaginator
async def fetch_page(start_at, max_results):
results = await client.search.jql('...', start_at=start_at, max_results=max_results)
return results.issues, results.total
async for issue in AsyncPaginator(fetch_page, page_size=50):
print(issue.key)
Paginator API¶
Paginator[T]¶
A synchronous iterator that auto-paginates through results.
Constructor:
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
|
– |
Function that takes |
|
|
|
Number of items per page |
Usage: Implements __iter__ and __next__. Raises StopIteration when all items have been yielded.
AsyncPaginator[T]¶
An asynchronous iterator with the same interface.
Constructor: Same as Paginator, but fetch_page should be an async function.
Usage: Implements __aiter__ and __anext__. Raises StopAsyncIteration when exhausted.