11import csv
22import requests
33import json
4+ import pytz
45
56from github import Github , Repository , GithubException , PullRequest
67
78EMPTY_FIELD = 'Empty field'
9+
810timedelta = 0.05
911
1012
13+ timezone = 'Europe/Moscow'
14+
15+
1116def login (token ):
1217 client = Github (login_or_token = token )
1318
@@ -67,8 +72,12 @@ def log_commit_to_stdout(info):
6772 print (info )
6873
6974
70- def log_repository_commits (repository : Repository , csv_name ):
75+ def log_repository_commits (repository : Repository , csv_name , start , finish ):
7176 for commit in repository .get_commits ():
77+ if commit .commit .author .date .astimezone (
78+ pytz .timezone (timezone )) < start or commit .commit .author .date .astimezone (
79+ pytz .timezone (timezone )) > finish :
80+ continue
7281 if commit .commit is not None :
7382 info = {'repository name' : repository .full_name ,
7483 'author name' : commit .commit .author .name ,
@@ -163,11 +172,13 @@ def get_connected_pulls(issue_number, repo_owner, repo_name, token):
163172 else :
164173 return list_url
165174 return 'Empty field'
175+
166176
167-
168-
169- def log_repository_issues (repository : Repository , csv_name , token ):
177+ def log_repository_issues (repository : Repository , csv_name , token , start , finish ):
170178 for issue in repository .get_issues (state = 'all' ):
179+ if issue .created_at .astimezone (pytz .timezone (timezone )) < start or issue .created_at .astimezone (
180+ pytz .timezone (timezone )) > finish :
181+ continue
171182 info_tmp = {
172183 'repository name' : repository .full_name , 'number' : issue .number , 'title' : issue .title ,
173184 'state' : issue .state , 'task' : issue .body ,
@@ -219,7 +230,7 @@ def log_repository_issues(repository: Repository, csv_name, token):
219230
220231
221232def log_pr_to_csv (info , csv_name ):
222- fieldnames = ['repository name' , 'title' , 'state' , 'commit into' , 'commit from' , 'created at' , 'creator name' ,
233+ fieldnames = ['repository name' , 'title' , 'id' , ' state' , 'commit into' , 'commit from' , 'created at' , 'creator name' ,
223234 'creator login' , 'creator email' ,
224235 'changed files' , 'comment body' , 'comment created at' , 'comment author name' , 'comment author login' ,
225236 'comment author email' , 'merger name' , 'merger login' , 'merger email' , 'source branch' ,
@@ -277,13 +288,17 @@ def get_related_issues(pull_request_number, repo_owner, repo_name, token):
277288 issue_node = issue ["node" ]
278289 list_issues_url .append (issue_node ["url" ])
279290 return list_issues_url
291+
280292
281-
282- def log_repositories_pr (repository : Repository , csv_name , token ):
293+ def log_repositories_pr (repository : Repository , csv_name , token , start , finish ):
283294 for pull in repository .get_pulls (state = 'all' ):
295+ if pull .created_at .astimezone (pytz .timezone (timezone )) < start or pull .created_at .astimezone (
296+ pytz .timezone (timezone )) > finish :
297+ continue
284298 info_tmp = {
285299 'repository name' : repository .full_name ,
286300 'title' : pull .title ,
301+ 'id' : pull .number ,
287302 'state' : pull .state ,
288303 'commit into' : pull .base .label ,
289304 'commit from' : pull .head .label ,
@@ -331,13 +346,14 @@ def log_repositories_pr(repository: Repository, csv_name, token):
331346 sleep (timedelta )
332347
333348
334- def log_pull_requests (client : Github , repositories , csv_name , token ):
349+ def log_pull_requests (client : Github , repositories , csv_name , token , start , finish ):
335350 with open (csv_name , 'w' , newline = '' ) as file :
336351 writer = csv .writer (file )
337352 writer .writerow (
338353 (
339354 'repository name' ,
340355 'title' ,
356+ 'id' ,
341357 'state' ,
342358 'commit into' ,
343359 'commit from' ,
@@ -363,15 +379,19 @@ def log_pull_requests(client: Github, repositories, csv_name, token):
363379 )
364380
365381 for repo in get_next_repo (client , repositories ):
382+
366383 try :
367- log_repositories_pr (repo , csv_name )
384+ log_repositories_pr (repo , csv_name , tokrn , start , finish )
368385 sleep (timedelta )
369386 except e :
370387 print (e )
371388
372389
373390
374- def log_issues (client : Github , repositories , csv_name , token ):
391+
392+
393+
394+ def log_issues (client : Github , repositories , csv_name , token , start , finish ):
375395 with open (csv_name , 'w' , newline = '' ) as file :
376396 writer = csv .writer (file )
377397 writer .writerow (
@@ -401,15 +421,19 @@ def log_issues(client: Github, repositories, csv_name, token):
401421 )
402422
403423 for repo in get_next_repo (client , repositories ):
424+
404425 try :
405- log_repository_issues (repo , csv_name )
426+ log_repository_issues (repo , csv_name , token , start , finush )
406427 sleep (timedelta )
407428 except e :
408429 print (e )
409430
410431
411432
412- def log_commits (client : Github , repositories , csv_name ):
433+ aq
434+
435+
436+ def log_commits (client : Github , repositories , csv_name , start , finish ):
413437 with open (csv_name , 'w' , newline = '' ) as file :
414438 writer = csv .writer (file )
415439 writer .writerow (
@@ -425,8 +449,12 @@ def log_commits(client: Github, repositories, csv_name):
425449 )
426450
427451 for repo in get_next_repo (client , repositories ):
452+
428453 try :
429- log_repository_commits (repo , csv_name )
454+ log_repository_commits (repo , csv_name , starr , finish )
430455 sleep (timedelta )
431456 except e :
432457 print (e )
458+
459+
460+
0 commit comments