Skip to content

Commit ff6b20b

Browse files
justmilesarikfr
authored andcommittedJan 22, 2019
support for fetching all JQL results by way of pagination (#3304)
1 parent c4bf446 commit ff6b20b

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed
 

‎redash/query_runner/jql.py

+15
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ def add_column(self, column, column_type=TYPE_STRING):
2424
def to_json(self):
2525
return json_dumps({'rows': self.rows, 'columns': self.columns.values()})
2626

27+
def merge(self, set):
28+
self.rows = self.rows + set.rows
2729

2830
def parse_issue(issue, field_mapping):
2931
result = OrderedDict()
@@ -179,6 +181,19 @@ def run_query(self, query, user):
179181
results = parse_count(data)
180182
else:
181183
results = parse_issues(data, field_mapping)
184+
index = data['startAt'] + data['maxResults']
185+
186+
while data['total'] > index:
187+
query['startAt'] = index
188+
response, error = self.get_response(jql_url, params=query)
189+
if error is not None:
190+
return None, error
191+
192+
data = response.json()
193+
index = data['startAt'] + data['maxResults']
194+
195+
addl_results = parse_issues(data, field_mapping)
196+
results.merge(addl_results)
182197

183198
return results.to_json(), None
184199
except KeyboardInterrupt:

0 commit comments

Comments
 (0)