11import csv
22import requests
33import json
4+ import pytz
45
56from github import Github , Repository , GithubException , PullRequest
67
78EMPTY_FIELD = 'Empty field'
8-
9+ timezone = 'Europe/Moscow'
910
1011def login (token ):
1112 client = Github (login_or_token = token )
@@ -65,8 +66,12 @@ def log_commit_to_stdout(info):
6566 print (info )
6667
6768
68- def log_repository_commits (repository : Repository , csv_name ):
69+ def log_repository_commits (repository : Repository , csv_name , start , finish ):
6970 for commit in repository .get_commits ():
71+ if commit .commit .author .date .astimezone (
72+ pytz .timezone (timezone )) < start or commit .commit .author .date .astimezone (
73+ pytz .timezone (timezone )) > finish :
74+ continue
7075 if commit .commit is not None :
7176 info = {'repository name' : repository .full_name ,
7277 'author name' : commit .commit .author .name ,
@@ -160,11 +165,13 @@ def get_connected_pulls(issue_number, repo_owner, repo_name, token):
160165 else :
161166 return list_url
162167 return 'Empty field'
168+
163169
164-
165-
166- def log_repository_issues (repository : Repository , csv_name , token ):
170+ def log_repository_issues (repository : Repository , csv_name , token , start , finish ):
167171 for issue in repository .get_issues (state = 'all' ):
172+ if issue .created_at .astimezone (pytz .timezone (timezone )) < start or issue .created_at .astimezone (
173+ pytz .timezone (timezone )) > finish :
174+ continue
168175 info_tmp = {
169176 'repository name' : repository .full_name , 'number' : issue .number , 'title' : issue .title ,
170177 'state' : issue .state , 'task' : issue .body ,
@@ -215,7 +222,7 @@ def log_repository_issues(repository: Repository, csv_name, token):
215222
216223
217224def log_pr_to_csv (info , csv_name ):
218- fieldnames = ['repository name' , 'title' , 'state' , 'commit into' , 'commit from' , 'created at' , 'creator name' ,
225+ fieldnames = ['repository name' , 'title' , 'id' , ' state' , 'commit into' , 'commit from' , 'created at' , 'creator name' ,
219226 'creator login' , 'creator email' ,
220227 'changed files' , 'comment body' , 'comment created at' , 'comment author name' , 'comment author login' ,
221228 'comment author email' , 'merger name' , 'merger login' , 'merger email' , 'source branch' ,
@@ -273,13 +280,17 @@ def get_related_issues(pull_request_number, repo_owner, repo_name, token):
273280 issue_node = issue ["node" ]
274281 list_issues_url .append (issue_node ["url" ])
275282 return list_issues_url
283+
276284
277-
278- def log_repositories_pr (repository : Repository , csv_name , token ):
285+ def log_repositories_pr (repository : Repository , csv_name , token , start , finish ):
279286 for pull in repository .get_pulls (state = 'all' ):
287+ if pull .created_at .astimezone (pytz .timezone (timezone )) < start or pull .created_at .astimezone (
288+ pytz .timezone (timezone )) > finish :
289+ continue
280290 info_tmp = {
281291 'repository name' : repository .full_name ,
282292 'title' : pull .title ,
293+ 'id' : pull .number ,
283294 'state' : pull .state ,
284295 'commit into' : pull .base .label ,
285296 'commit from' : pull .head .label ,
@@ -326,13 +337,14 @@ def log_repositories_pr(repository: Repository, csv_name, token):
326337 log_pr_to_stdout (info_tmp )
327338
328339
329- def log_pull_requests (client : Github , repositories , csv_name , token ):
340+ def log_pull_requests (client : Github , repositories , csv_name , token , start , finish ):
330341 with open (csv_name , 'w' , newline = '' ) as file :
331342 writer = csv .writer (file )
332343 writer .writerow (
333344 (
334345 'repository name' ,
335346 'title' ,
347+ 'id' ,
336348 'state' ,
337349 'commit into' ,
338350 'commit from' ,
@@ -358,10 +370,10 @@ def log_pull_requests(client: Github, repositories, csv_name, token):
358370 )
359371
360372 for repo in get_next_repo (client , repositories ):
361- log_repositories_pr (repo , csv_name , token )
373+ log_repositories_pr (repo , csv_name , token , start , finish )
362374
363375
364- def log_issues (client : Github , repositories , csv_name , token ):
376+ def log_issues (client : Github , repositories , csv_name , token , start , finish ):
365377 with open (csv_name , 'w' , newline = '' ) as file :
366378 writer = csv .writer (file )
367379 writer .writerow (
@@ -391,10 +403,10 @@ def log_issues(client: Github, repositories, csv_name, token):
391403 )
392404
393405 for repo in get_next_repo (client , repositories ):
394- log_repository_issues (repo , csv_name , token )
406+ log_repository_issues (repo , csv_name , token , start , finish )
395407
396408
397- def log_commits (client : Github , repositories , csv_name ):
409+ def log_commits (client : Github , repositories , csv_name , start , finish ):
398410 with open (csv_name , 'w' , newline = '' ) as file :
399411 writer = csv .writer (file )
400412 writer .writerow (
@@ -410,4 +422,4 @@ def log_commits(client: Github, repositories, csv_name):
410422 )
411423
412424 for repo in get_next_repo (client , repositories ):
413- log_repository_commits (repo , csv_name )
425+ log_repository_commits (repo , csv_name , start , finish )
0 commit comments