Skip to content

Commit 3eed72e

Browse files
committed
issue_15_done (time filter)
1 parent db0aef6 commit 3eed72e

File tree

2 files changed

+35
-12
lines changed

2 files changed

+35
-12
lines changed

git_logger.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,10 @@ def log_commit_to_stdout(info):
4141
print(info)
4242

4343

44-
def log_repository_commits(repository: Repository, csv_name):
44+
def log_repository_commits(repository: Repository, csv_name, start, finish):
4545
for commit in repository.get_commits():
46+
if commit.commit.author.date < start or commit.commit.author.date > finish:
47+
continue
4648
if commit.commit is not None:
4749
info = {'repository name': repository.full_name,
4850
'commit id': commit.commit.sha,
@@ -75,8 +77,10 @@ def log_issue_to_stdout(info):
7577
print(info)
7678

7779

78-
def log_repository_issues(repository: Repository, csv_name):
80+
def log_repository_issues(repository: Repository, csv_name, start, finish):
7981
for issue in repository.get_issues(state='all'):
82+
if issue.created_at < start or issue.created_at > finish:
83+
continue
8084
info_tmp = {
8185
'repository name': repository.full_name, 'number': issue.number, 'title': issue.title,
8286
'state': issue.state, 'task': issue.body,
@@ -133,8 +137,10 @@ def log_pr_to_stdout(info):
133137
print(info)
134138

135139

136-
def log_repositories_pr(repository: Repository, csv_name):
140+
def log_repositories_pr(repository: Repository, csv_name, start, finish):
137141
for pull in repository.get_pulls(state='all'):
142+
if pull.created_at < start or pull.created_at > finish:
143+
continue
138144
info_tmp = {
139145
'repository name': repository.full_name,
140146
'title': pull.title,
@@ -178,7 +184,7 @@ def log_repositories_pr(repository: Repository, csv_name):
178184
log_pr_to_stdout(info_tmp)
179185

180186

181-
def log_pull_requests(client: Github, repositories, csv_name):
187+
def log_pull_requests(client: Github, repositories, csv_name, start, finish):
182188
with open(csv_name, 'w', newline='') as file:
183189
writer = csv.writer(file)
184190
writer.writerow(
@@ -207,10 +213,10 @@ def log_pull_requests(client: Github, repositories, csv_name):
207213
)
208214

209215
for repo in get_next_repo(client, repositories):
210-
log_repositories_pr(repo, csv_name)
216+
log_repositories_pr(repo, csv_name, start, finish)
211217

212218

213-
def log_issues(client: Github, repositories, csv_name):
219+
def log_issues(client: Github, repositories, csv_name, start, finish):
214220
with open(csv_name, 'w', newline='') as file:
215221
writer = csv.writer(file)
216222
writer.writerow(
@@ -235,10 +241,10 @@ def log_issues(client: Github, repositories, csv_name):
235241
)
236242

237243
for repo in get_next_repo(client, repositories):
238-
log_repository_issues(repo, csv_name)
244+
log_repository_issues(repo, csv_name, start, finish)
239245

240246

241-
def log_commits(client: Github, repositories, csv_name):
247+
def log_commits(client: Github, repositories, csv_name, start, finish):
242248
with open(csv_name, 'w', newline='') as file:
243249
writer = csv.writer(file)
244250
writer.writerow(
@@ -254,4 +260,4 @@ def log_commits(client: Github, repositories, csv_name):
254260
)
255261

256262
for repo in get_next_repo(client, repositories):
257-
log_repository_commits(repo, csv_name)
263+
log_repository_commits(repo, csv_name, start, finish)

main.py

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import argparse
2+
from datetime import datetime
3+
24
import git_logger
35

46

@@ -9,9 +11,20 @@ def parse_args():
911
parser.add_argument('-t', '--token', type=str, required=True, help='token github account')
1012
parser.add_argument('-l', '--list', type=str, required=True, help='repos names file')
1113
parser.add_argument('-o', '--out', type=str, required=True, help='output filename')
14+
parser.add_argument('-s', '--start', type=str, required=False, help='start time', default='2000/01/01-00:00:00')
15+
parser.add_argument('-f', '--finish', type=str, required=False, help='finish time', default='2400/01/01-00:00:00')
1216
return parser.parse_args()
1317

1418

19+
def parse_time(datetime_str):
20+
start = datetime_str[0].split('/') + datetime_str[1].split(':') if len(datetime_str) == 2 \
21+
else datetime_str[0].split('/') + ['00', '00', '00']
22+
start = [int(i) for i in start]
23+
start_datetime = datetime(year=start[0], month=start[1], day=start[2], hour=start[3], minute=start[4],
24+
second=start[5])
25+
return start_datetime
26+
27+
1528
def main():
1629
args = parse_args()
1730
token = args.token
@@ -23,12 +36,16 @@ def main():
2336
except Exception as e:
2437
print(e)
2538
else:
39+
if args.start:
40+
start = parse_time(args.start.split('-'))
41+
if args.finish:
42+
finish = parse_time(args.finish.split('-'))
2643
if not args.p and not args.i:
27-
git_logger.log_commits(client, repositories, csv_name)
44+
git_logger.log_commits(client, repositories, csv_name, start, finish)
2845
if args.p:
29-
git_logger.log_pull_requests(client, repositories, csv_name)
46+
git_logger.log_pull_requests(client, repositories, csv_name, start, finish)
3047
if args.i:
31-
git_logger.log_issues(client, repositories, csv_name)
48+
git_logger.log_issues(client, repositories, csv_name, start, finish)
3249

3350

3451
if __name__ == '__main__':

0 commit comments

Comments
 (0)