Skip to content

Commit d2776d6

Browse files
authored
Merge branch 'master' into issue_15_time_filter
2 parents 451faa7 + 4e1e5f3 commit d2776d6

File tree

1 file changed

+35
-4
lines changed

1 file changed

+35
-4
lines changed

git_logger.py

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
from github import Github, Repository, GithubException
55

6+
from github import Github, Repository, GithubException, PullRequest
7+
68
EMPTY_FIELD = 'Empty field'
79

810

@@ -33,6 +35,24 @@ def get_next_repo(client: Github, repositories):
3335
yield repo
3436

3537

38+
def get_assignee_story(github_object):
39+
assignee_result = ""
40+
events = github_object.get_issue_events() if type(
41+
github_object) is PullRequest.PullRequest else github_object.get_events()
42+
for event in events:
43+
if event.event == "assigned" or event.event == "unassigned":
44+
date = event.created_at
45+
if event.event == "assigned":
46+
assigner = github_object.user.login
47+
assignee = event.assignee.login
48+
assignee_result += f"{date}: {assigner} -> {assignee}; "
49+
else:
50+
assigner = github_object.user.login
51+
assignee = event.assignee.login
52+
assignee_result += f"{date}: {assigner} -/> {assignee}; "
53+
return assignee_result
54+
55+
3656
def log_commit_to_csv(info, csv_name):
3757
fieldnames = ['repository name', 'commit id', 'author name', 'author login', 'author email', 'date and time',
3858
'changed files']
@@ -73,7 +93,8 @@ def log_repository_commits(repository: Repository, csv_name, start, finish):
7393
def log_issue_to_csv(info, csv_name):
7494
fieldnames = ['repository name', 'number', 'title', 'state', 'task', 'created at', 'creator name', 'creator login',
7595
'creator email', 'closer name', 'closer login', 'closer email', 'closed at', 'comment body',
76-
'comment created at', 'comment author name', 'comment author login', 'comment author email']
96+
'comment created at', 'comment author name', 'comment author login', 'comment author email',
97+
'assignee story', ]
7798
with open(csv_name, 'a', newline='') as file:
7899
writer = csv.DictWriter(file, fieldnames=fieldnames)
79100
writer.writerow(info)
@@ -104,16 +125,19 @@ def log_repository_issues(repository: Repository, csv_name, start, finish):
104125
'comment author name': EMPTY_FIELD,
105126
'comment author login': EMPTY_FIELD,
106127
'comment author email': EMPTY_FIELD,
128+
'assignee story': EMPTY_FIELD,
107129
}
108130

131+
info_tmp['assignee story'] = get_assignee_story(issue)
132+
109133
if issue.user is not None:
110134
info_tmp['creator name'] = issue.user.name
111135
info_tmp['creator login'] = issue.user.login
112136

113137
if issue.closed_by is not None:
114138
info_tmp['closed at'] = issue.closed_at
115-
info_tmp['creator name'] = issue.closed_by.name
116-
info_tmp['creator login'] = issue.user.login
139+
info_tmp['closer name'] = issue.closed_by.name
140+
info_tmp['closer login'] = issue.user.login
117141

118142
if issue.get_comments().totalCount > 0:
119143
for comment in issue.get_comments():
@@ -135,7 +159,7 @@ def log_pr_to_csv(info, csv_name):
135159
'creator login', 'creator email',
136160
'changed files', 'comment body', 'comment created at', 'comment author name', 'comment author login',
137161
'comment author email', 'merger name', 'merger login', 'merger email', 'source branch',
138-
'target branch']
162+
'target branch', 'assignee story', ]
139163
with open(csv_name, 'a', newline='') as file:
140164
writer = csv.DictWriter(file, fieldnames=fieldnames)
141165
writer.writerow(info)
@@ -172,13 +196,16 @@ def log_repositories_pr(repository: Repository, csv_name, start, finish):
172196
'merger email': EMPTY_FIELD,
173197
'source branch': pull.head.ref,
174198
'target branch': pull.base.ref,
199+
'assignee story': EMPTY_FIELD,
175200
}
176201

177202
if pull.merged_by is not None:
178203
info_tmp['merger name'] = pull.merged_by.name
179204
info_tmp['merger login'] = pull.merged_by.login
180205
info_tmp['merger email'] = pull.merged_by.email
181206

207+
info_tmp['assignee story'] = get_assignee_story(pull)
208+
182209
if pull.get_comments().totalCount > 0:
183210
for comment in pull.get_comments():
184211
info = info_tmp
@@ -220,6 +247,7 @@ def log_pull_requests(client: Github, repositories, csv_name, start, finish):
220247
'merger email',
221248
'source branch',
222249
'target branch',
250+
'assignee story',
223251
)
224252
)
225253

@@ -239,15 +267,18 @@ def log_issues(client: Github, repositories, csv_name, start, finish):
239267
'task',
240268
'created at',
241269
'creator name',
270+
'creator login',
242271
'creator email',
243272
'closer name',
273+
'closer login',
244274
'closer email',
245275
'closed at',
246276
'comment body',
247277
'comment created at',
248278
'comment author name',
249279
'comment author login',
250280
'comment author email',
281+
'assignee story',
251282
)
252283
)
253284

0 commit comments

Comments
 (0)