##// END OF EJS Templates
Add tool to query issue stats on Github.
Thomas Kluyver -
Show More
@@ -0,0 +1,31 b''
1 import json
2 from datetime import datetime, timedelta
3 import sys
4 from urllib import urlopen
5
6 def get_issues(project="ipython/ipython/", state="open"):
7 """Get a list of the issues from the Github API."""
8 f = urlopen("http://github.com/api/v2/json/issues/list/%s%s" % (project, state))
9 return json.load(f)['issues']
10
11 def _parse_datetime(s):
12 """Parse dates in the format returned by the Github API."""
13 return datetime.strptime(s.rpartition(" ")[0], "%Y/%m/%d %H:%M:%S")
14
15 def issues_closed_since(period=timedelta(days=365), project="ipython/ipython/"):
16 """Get all issues closed since a particular point in time. period
17 can either be a datetime object, or a timedelta object. In the
18 latter case, it is used as a time before the present."""
19 allclosed = get_issues(project=project, state='closed')
20 if isinstance(period, timedelta):
21 period = datetime.now() - period
22 return [i for i in allclosed if _parse_datetime(i['closed_at']) > period]
23
24 if __name__ == "__main__":
25 # Demo
26 if len(sys.argv) > 1:
27 days = int(sys.argv[1])
28 else:
29 days = 365
30 n = len(issues_closed_since(timedelta(days=days)))
31 print "%d issues closed in the last %d days." % (n, days)
General Comments 0
You need to be logged in to leave comments. Login now