11import collections
2+ import datetime
23import json
34import os
45import re
@@ -36,7 +37,14 @@ def cli():
3637 help = "Output directory" ,
3738 show_default = True ,
3839)
39- def query (repo_owner , repo_name , outdir ):
40+ @click .option (
41+ "-d" ,
42+ "--start-date" ,
43+ default = "2020-01-01T00:00:00Z" ,
44+ help = "Start date for query" ,
45+ show_default = True ,
46+ )
47+ def query (repo_owner , repo_name , outdir , start_date ):
4048 """Download and save issue and pr data for `repo_owner`/`repo_name`"""
4149 os .makedirs (outdir , exist_ok = True )
4250
@@ -74,6 +82,7 @@ def query(repo_owner, repo_name, outdir):
7482 headers ,
7583 repo_owner = repo_owner ,
7684 repo_name = repo_name ,
85+ start_date = start_date ,
7786 )
7887 data .get ()
7988 ftype = {"issues" : "issues" , "pullRequests" : "PRs" }
@@ -91,18 +100,22 @@ def query(repo_owner, repo_name, outdir):
91100
92101 if response .status_code == 200 :
93102 stargazers = response .json ()
94- with open (f"{ outdir } /{ repo_name } _stars.json" , "w" ) as outf :
95- simplified = [
96- {"starred_at" : user ["starred_at" ], "login" : user ["user" ]["login" ]}
97- for user in stargazers
98- ]
99- json .dump (simplified , outf )
100103 else :
101104 print (
102105 "Request failed for collecting start with status code "
103106 f"{ response .status_code } "
104107 )
105108
109+ with open (f"{ outdir } /{ repo_name } _misc.json" , "w" ) as outf :
110+ misc_data = {}
111+ misc_data ["query_start_date" ] = start_date
112+ misc_data ["query_end_date" ] = str (datetime .datetime .now ())
113+ misc_data ["repo_stars" ] = [
114+ {"starred_at" : user ["starred_at" ], "login" : user ["user" ]["login" ]}
115+ for user in stargazers
116+ ]
117+ json .dump (misc_data , outf )
118+
106119
107120cli .add_command (template )
108121cli .add_command (publish )
0 commit comments