Skip to content

Commit 24a1314

Browse files
committed
issue 8 done (assignee problem)
1 parent 5b710fb commit 24a1314

File tree

1 file changed

+43
-4
lines changed

1 file changed

+43
-4
lines changed

git_logger.py

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
from github import Github, Repository, GithubException
21
import csv
32

3+
from github import Github, Repository, GithubException
4+
45
EMPTY_FIELD = 'Empty field'
56

7+
68
def login(token):
79
client = Github(login_or_token=token)
810
try:
@@ -31,7 +33,8 @@ def get_next_repo(client: Github, repositories):
3133

3234

3335
def log_commit_to_csv(info, csv_name):
34-
fieldnames = ['repository name', 'commit id', 'author name', 'author login', 'author email', 'date and time', 'changed files']
36+
fieldnames = ['repository name', 'commit id', 'author name', 'author login', 'author email', 'date and time',
37+
'changed files']
3538
with open(csv_name, 'a', newline='') as file:
3639
writer = csv.DictWriter(file, fieldnames=fieldnames)
3740
writer.writerow(info)
@@ -65,7 +68,8 @@ def log_repository_commits(repository: Repository, csv_name):
6568
def log_issue_to_csv(info, csv_name):
6669
fieldnames = ['repository name', 'number', 'title', 'state', 'task', 'created at', 'creator name', 'creator login',
6770
'creator email', 'closer name', 'closer login', 'closer email', 'closed at', 'comment body',
68-
'comment created at', 'comment author name', 'comment author login', 'comment author email']
71+
'comment created at', 'comment author name', 'comment author login', 'comment author email',
72+
'assignee story',]
6973
with open(csv_name, 'a', newline='') as file:
7074
writer = csv.DictWriter(file, fieldnames=fieldnames)
7175
writer.writerow(info)
@@ -93,8 +97,24 @@ def log_repository_issues(repository: Repository, csv_name):
9397
'comment author name': EMPTY_FIELD,
9498
'comment author login': EMPTY_FIELD,
9599
'comment author email': EMPTY_FIELD,
100+
'assignee story': EMPTY_FIELD,
96101
}
97102

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
117+
98118
if issue.user is not None:
99119
info_tmp['creator name'] = issue.user.name
100120
info_tmp['creator login'] = issue.user.login
@@ -123,7 +143,8 @@ def log_pr_to_csv(info, csv_name):
123143
fieldnames = ['repository name', 'title', 'state', 'commit into', 'commit from', 'created at', 'creator name',
124144
'creator login', 'creator email',
125145
'changed files', 'comment body', 'comment created at', 'comment author name', 'comment author login',
126-
'comment author email', 'merger name', 'merger login', 'merger email', 'source branch', 'target branch']
146+
'comment author email', 'merger name', 'merger login', 'merger email', 'source branch',
147+
'target branch', 'assignee story', ]
127148
with open(csv_name, 'a', newline='') as file:
128149
writer = csv.DictWriter(file, fieldnames=fieldnames)
129150
writer.writerow(info)
@@ -156,13 +177,29 @@ def log_repositories_pr(repository: Repository, csv_name):
156177
'merger email': EMPTY_FIELD,
157178
'source branch': pull.head.ref,
158179
'target branch': pull.base.ref,
180+
'assignee story': EMPTY_FIELD,
159181
}
160182

161183
if pull.merged_by is not None:
162184
info_tmp['merger name'] = pull.merged_by.name
163185
info_tmp['merger login'] = pull.merged_by.login
164186
info_tmp['merger email'] = pull.merged_by.email
165187

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
202+
166203
if pull.get_comments().totalCount > 0:
167204
for comment in pull.get_comments():
168205
info = info_tmp
@@ -203,6 +240,7 @@ def log_pull_requests(client: Github, repositories, csv_name):
203240
'merger email',
204241
'source branch',
205242
'target branch',
243+
'assignee story',
206244
)
207245
)
208246

@@ -231,6 +269,7 @@ def log_issues(client: Github, repositories, csv_name):
231269
'comment author name',
232270
'comment author login',
233271
'comment author email',
272+
'assignee story',
234273
)
235274
)
236275

0 commit comments

Comments
 (0)