Conditions | 8 |
Total Lines | 32 |
Lines | 0 |
Ratio | 0 % |
1 | import datetime |
||
12 | def run(self, user, repo, filter=None, state=None, sort=None, |
||
13 | direction=None, since=None, limit=20): |
||
14 | user = self._client.get_user(user) |
||
15 | repo = user.get_repo(repo) |
||
16 | |||
17 | kwargs = {} |
||
18 | if filter: |
||
19 | kwargs['filter'] = filter |
||
20 | if state: |
||
21 | kwargs['state'] = state |
||
22 | if sort: |
||
23 | kwargs['sort'] = sort |
||
24 | if direction: |
||
25 | kwargs['direction'] = direction |
||
26 | if since: |
||
27 | kwargs['since'] = datetime.datetime.fromtimestamp(since) |
||
28 | |||
29 | # Note: PyGithub library introduces an abstraction for paginated lists |
||
30 | # which doesn't conform to Python's iterator spec so we can't use |
||
31 | # array slicing to exhaust the list :/ |
||
32 | issues = repo.get_issues(**kwargs) |
||
33 | issues = list(issues) |
||
34 | |||
35 | result = [] |
||
36 | for index, issue in enumerate(issues): |
||
37 | issue = issue_to_dict(issue=issue) |
||
38 | result.append(issue) |
||
39 | |||
40 | if (index + 1) >= limit: |
||
41 | break |
||
42 | |||
43 | return result |
||
44 |