@@ -20,13 +20,33 @@ def __init__(self, client):
2020 self .client = client
2121
2222 def get_user_data (self , user ) -> User :
23- return User (login = user .login , username = user .name , email = user .email , html_url = user .html_url , node_id = user .node_id , type = user .type , bio = user .bio , site_admin = user .site_admin , _id = user .id )
24-
23+ return User (
24+ login = user .login ,
25+ username = user .name ,
26+ email = user .email ,
27+ html_url = user .html_url ,
28+ node_id = user .node_id ,
29+ type = user .type ,
30+ bio = user .bio ,
31+ site_admin = user .site_admin ,
32+ _id = user .id ,
33+ )
2534
2635 def get_repository (self , id : str ) -> Repository | None :
2736 try :
2837 repo = self .client .get_repo (id )
29- return Repository (_id = repo .full_name , name = repo .name , url = repo .html_url , default_branch = Branch (name = repo .default_branch , last_commit = None ), owner = User (login = repo .owner .login ,username = repo .owner .name ,email = repo .owner .email ,html_url = repo .owner .html_url ))
38+ return Repository (
39+ _id = repo .full_name ,
40+ name = repo .name ,
41+ url = repo .html_url ,
42+ default_branch = Branch (name = repo .default_branch , last_commit = None ),
43+ owner = User (
44+ login = repo .owner .login ,
45+ username = repo .owner .name ,
46+ email = repo .owner .email ,
47+ html_url = repo .owner .html_url ,
48+ ),
49+ )
3050 except Exception as e :
3151 logging .error (f"Failed to get repository { id } from GitHub: { e } " )
3252 return None
@@ -43,10 +63,7 @@ def get_commits(self, repo: Repository, files: bool = True) -> list[Commit]:
4363 message = c .commit .message ,
4464 author = self .get_user_data (c .author ),
4565 date = c .commit .author .date ,
46- files = [
47- f .filename
48- for f in c .files
49- ] if files else None
66+ files = [f .filename for f in c .files ] if files else None ,
5067 )
5168 for c in commits
5269 ]
@@ -79,11 +96,8 @@ def get_issues(self, repo: Repository) -> list[Issue]:
7996 closed_by = self .get_user_data (i .closed_by ) if i .closed_by else None ,
8097 body = i .body ,
8198 user = self .get_user_data (i .user ),
82- labels = [
83- l .name
84- for l in i .labels
85- ],
86- milestone = i .milestone .title if i .milestone else None
99+ labels = [label .name for label in i .labels ],
100+ milestone = i .milestone .title if i .milestone else None ,
87101 )
88102 for i in issues
89103 ]
@@ -106,16 +120,10 @@ def get_pull_requests(self, repo: Repository) -> list[PullRequest]:
106120 head_ref = p .head .ref ,
107121 base_ref = p .base .ref ,
108122 merged_by = self .get_user_data (p .merged_by ) if p .merged_by else None ,
109- files = [
110- f .filename
111- for f in p .get_files ()
112- ],
123+ files = [file .filename for file in p .get_files ()],
113124 issue_url = p .issue_url ,
114- labels = [
115- l .name
116- for l in p .labels
117- ],
118- milestone = p .milestone .title if p .milestone else None
125+ labels = [label .name for label in p .labels ],
126+ milestone = p .milestone .title if p .milestone else None ,
119127 )
120128 for p in pulls
121129 ]
@@ -164,12 +172,14 @@ def get_forks(self, repo: Repository) -> list[Repository]:
164172 repo_client = self .client .get_repo (repo ._id )
165173 result = []
166174 for r in repo_client .get_forks ():
167- result .append (Repository (_id = repo .full_name , name = repo .name , url = repo .html_url ))
175+ result .append (
176+ Repository (_id = repo .full_name , name = repo .name , url = repo .html_url )
177+ )
168178 return result
169179
170180 def get_comments (self , repo , obj ) -> list [Comment ]:
171181 result = []
172- if type (obj ) == Issue :
182+ if isinstance (obj , Issue ) :
173183 # TODO оптимизировать
174184 issues = self .client .get_repo (repo ._id ).get_issues (state = 'all' )
175185 issue = None
@@ -178,8 +188,14 @@ def get_comments(self, repo, obj) -> list[Comment]:
178188 issue = i
179189 break
180190 for c in issue .get_comments ():
181- result .append (Comment (body = c .body ,created_at = c .created_at ,author = self .get_user_data (c .user )))
182- elif type (obj ) == PullRequest :
191+ result .append (
192+ Comment (
193+ body = c .body ,
194+ created_at = c .created_at ,
195+ author = self .get_user_data (c .user ),
196+ )
197+ )
198+ elif isinstance (obj , PullRequest ):
183199 # TODO оптимизировать
184200 pulls = self .client .get_repo (repo ._id ).get_pulls (state = 'all' )
185201 pull = None
@@ -188,7 +204,13 @@ def get_comments(self, repo, obj) -> list[Comment]:
188204 pull = p
189205 break
190206 for c in pull .get_comments ():
191- result .append (Comment (body = c .body ,created_at = c .created_at ,author = self .get_user_data (c .user .login )))
207+ result .append (
208+ Comment (
209+ body = c .body ,
210+ created_at = c .created_at ,
211+ author = self .get_user_data (c .user .login ),
212+ )
213+ )
192214
193215 return result
194216
@@ -200,7 +222,7 @@ def get_invites(self, repo: Repository) -> list[Invite]:
200222 _id = i ._id ,
201223 invitee = self .get_user_data (i .invitee ),
202224 created_at = i .created_at ,
203- html_url = i .html_url
225+ html_url = i .html_url ,
204226 )
205227 for i in invites
206228 ]
@@ -210,11 +232,12 @@ def get_invites(self, repo: Repository) -> list[Invite]:
210232 )
211233 return []
212234
235+
213236# Точка входа для тестирования
214237if __name__ == "__main__" :
215238 # Создайте клиент GitHub (используйте ваш токен)
216- client = Github ("tocken" )
217- api = GitHubRepoAPI (client )
239+ # client = Github("tocken")
240+ api = GitHubRepoAPI (' client' )
218241
219242 # Укажите ваш репозиторий
220243 repo_name = ""
0 commit comments