Skip to content

Commit d8d018b

Browse files
committed
issue 8 done (assignee story)
1 parent 24a1314 commit d8d018b

File tree

1 file changed

+22
-30
lines changed

1 file changed

+22
-30
lines changed

git_logger.py

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import csv
22

3-
from github import Github, Repository, GithubException
3+
from github import Github, Repository, GithubException, PullRequest
44

55
EMPTY_FIELD = 'Empty field'
66

@@ -32,6 +32,24 @@ def get_next_repo(client: Github, repositories):
3232
yield repo
3333

3434

35+
def get_assignee_story(github_object):
36+
assignee_result = ""
37+
events = github_object.get_issue_events() if type(
38+
github_object) is PullRequest.PullRequest else github_object.get_events()
39+
for event in events:
40+
if event.event == "assigned" or event.event == "unassigned":
41+
date = event.created_at
42+
if event.event == "assigned":
43+
assigner = github_object.user.login
44+
assignee = event.assignee.login
45+
assignee_result += f"{date}: {assigner} -> {assignee}; "
46+
else:
47+
assigner = github_object.user.login
48+
assignee = event.assignee.login
49+
assignee_result += f"{date}: {assigner} -/> {assignee}; "
50+
return assignee_result
51+
52+
3553
def log_commit_to_csv(info, csv_name):
3654
fieldnames = ['repository name', 'commit id', 'author name', 'author login', 'author email', 'date and time',
3755
'changed files']
@@ -69,7 +87,7 @@ def log_issue_to_csv(info, csv_name):
6987
fieldnames = ['repository name', 'number', 'title', 'state', 'task', 'created at', 'creator name', 'creator login',
7088
'creator email', 'closer name', 'closer login', 'closer email', 'closed at', 'comment body',
7189
'comment created at', 'comment author name', 'comment author login', 'comment author email',
72-
'assignee story',]
90+
'assignee story', ]
7391
with open(csv_name, 'a', newline='') as file:
7492
writer = csv.DictWriter(file, fieldnames=fieldnames)
7593
writer.writerow(info)
@@ -100,20 +118,7 @@ def log_repository_issues(repository: Repository, csv_name):
100118
'assignee story': EMPTY_FIELD,
101119
}
102120

103-
assignee_result = ""
104-
events = issue.get_events()
105-
for event in events:
106-
if event.event == "assigned" or event.event == "unassigned":
107-
date = event.created_at
108-
if event.event == "assigned":
109-
assigner = "placeholder" # event.actor не работает (баг pygithub)
110-
assignee = event.assignee.login
111-
assignee_result += f"{date}: {assigner} -> {assignee}; "
112-
else:
113-
assigner = "placeholder" # event.actor не работает (баг pygithub)
114-
assignee = event.assignee.login
115-
assignee_result += f"{date}: {assigner} -/> {assignee}; "
116-
info_tmp['assignee story'] = assignee_result
121+
info_tmp['assignee story'] = get_assignee_story(issue)
117122

118123
if issue.user is not None:
119124
info_tmp['creator name'] = issue.user.name
@@ -185,20 +190,7 @@ def log_repositories_pr(repository: Repository, csv_name):
185190
info_tmp['merger login'] = pull.merged_by.login
186191
info_tmp['merger email'] = pull.merged_by.email
187192

188-
assignee_result = ""
189-
events = pull.get_issue_events()
190-
for event in events:
191-
if event.event == "assigned" or event.event == "unassigned":
192-
date = event.created_at
193-
if event.event == "assigned":
194-
assigner = "placeholder" # event.actor не работает (баг pygithub)
195-
assignee = event.assignee.login
196-
assignee_result += f"{date}: {assigner} -> {assignee}; "
197-
else:
198-
assigner = "placeholder" # event.actor не работает (баг pygithub)
199-
assignee = event.assignee.login
200-
assignee_result += f"{date}: {assigner} -/> {assignee}; "
201-
info_tmp['assignee story'] = assignee_result
193+
info_tmp['assignee story'] = get_assignee_story(pull)
202194

203195
if pull.get_comments().totalCount > 0:
204196
for comment in pull.get_comments():

0 commit comments

Comments
 (0)