1010 PullRequest ,
1111 WikiPage ,
1212 Comment ,
13- Invite
13+ Invite ,
1414)
1515import base64
1616import sys
@@ -32,12 +32,14 @@ def get_user_data(self, user) -> User:
3232 type = getattr (user , 'type' , "" ),
3333 bio = getattr (user , 'bio' , "" ),
3434 site_admin = user .site_admin if hasattr (user , 'site_admin' ) else False ,
35- _id = user .id
35+ _id = user .id ,
3636 )
3737
3838 def get_repository (self , id : str ) -> Repository | None :
3939 try :
40- repo = self .client .repository .repo_get (owner = id .split ('/' )[0 ], repo = id .split ('/' )[1 ])
40+ repo = self .client .repository .repo_get (
41+ owner = id .split ('/' )[0 ], repo = id .split ('/' )[1 ]
42+ )
4143
4244 if not repo :
4345 logging .error (f"Failed to get repository { id } from Forgejo." )
@@ -57,30 +59,35 @@ def get_repository(self, id: str) -> Repository | None:
5759 def get_collaborator_permission (self , repo : Repository , user : User ) -> str :
5860 try :
5961 permission = self .client .repository .repo_get_repo_permissions (
60- owner = repo .owner .login ,
61- repo = repo .name ,
62- collaborator = user .login
62+ owner = repo .owner .login , repo = repo .name , collaborator = user .login
6363 )
6464 return permission .permission
6565
6666 except Exception as e :
6767 if ("401" in str (e )) or ("403" in str (e )):
6868 logging .error (
69- f"Permission error: Only admins or repo admins can view permissions for others in { repo .name } ." )
69+ f"Permission error: Only admins or repo admins can view permissions for others in { repo .name } ."
70+ )
7071 return f"Permission error: Only admins or repo admins can view permissions for others in { repo .name } ."
71- logging .error (f"Failed to get collaborator permission for { user .login } in { repo .name } : { e } " )
72+ logging .error (
73+ f"Failed to get collaborator permission for { user .login } in { repo .name } : { e } "
74+ )
7275 return "Error"
7376
7477 def get_commits (self , repo : Repository , files : bool = True ) -> list [Commit ]:
7578 try :
76- commits = self .client .repository .repo_get_all_commits (repo .owner .login , repo .name )
79+ commits = self .client .repository .repo_get_all_commits (
80+ repo .owner .login , repo .name
81+ )
7782 return [
7883 Commit (
7984 _id = c .sha ,
8085 message = c .commit .message ,
8186 author = self .get_user_data (c .author ),
8287 date = isodate .parse_datetime (c .commit .author .date ),
83- files = [f .filename for f in getattr (c , "files" , [])] if files else None
88+ files = (
89+ [f .filename for f in getattr (c , "files" , [])] if files else None
90+ ),
8491 )
8592 for c in commits
8693 ]
@@ -92,11 +99,17 @@ def get_commits(self, repo: Repository, files: bool = True) -> list[Commit]:
9299
93100 def get_contributors (self , repo : Repository ) -> list [Contributor ]:
94101 try :
95- commits = self .client .repository .repo_get_all_commits (repo .owner .login , repo .name )
96- contributors = {c .author .login : c .author .email or "" for c in commits if c .author }
102+ commits = self .client .repository .repo_get_all_commits (
103+ repo .owner .login , repo .name
104+ )
105+ contributors = {
106+ c .author .login : c .author .email or "" for c in commits if c .author
107+ }
97108 return [Contributor (login , email ) for login , email in contributors .items ()]
98109 except Exception as e :
99- logging .error (f"Failed to get contributors from Forgejo for repo { repo .name } : { e } " )
110+ logging .error (
111+ f"Failed to get contributors from Forgejo for repo { repo .name } : { e } "
112+ )
100113 return []
101114
102115 def get_issues (self , repo : Repository ) -> list [Issue ]:
@@ -109,7 +122,11 @@ def get_issues(self, repo: Repository) -> list[Issue]:
109122 state = i .state ,
110123 created_at = i .created_at ,
111124 closed_at = i .closed_at if i .state == 'closed' else None ,
112- closed_by = self .get_user_data (i .closed_by ) if hasattr (i , 'closed_by' ) and i .closed_by else None ,
125+ closed_by = (
126+ self .get_user_data (i .closed_by )
127+ if hasattr (i , 'closed_by' ) and i .closed_by
128+ else None
129+ ),
113130 body = i .body ,
114131 user = self .get_user_data (i .user ),
115132 labels = [label .name for label in i .labels ],
@@ -118,12 +135,16 @@ def get_issues(self, repo: Repository) -> list[Issue]:
118135 for i in issues
119136 ]
120137 except Exception as e :
121- logging .error (f"Failed to get issues from Forgejo for repo { repo .name } : { e } " )
138+ logging .error (
139+ f"Failed to get issues from Forgejo for repo { repo .name } : { e } "
140+ )
122141 return []
123142
124143 def get_pull_requests (self , repo : Repository ) -> list [PullRequest ]:
125144 try :
126- pulls = self .client .repository .repo_list_pull_requests (repo .owner .login , repo .name )
145+ pulls = self .client .repository .repo_list_pull_requests (
146+ repo .owner .login , repo .name
147+ )
127148 return [
128149 PullRequest (
129150 _id = p .number ,
@@ -144,12 +165,16 @@ def get_pull_requests(self, repo: Repository) -> list[PullRequest]:
144165 for p in pulls
145166 ]
146167 except Exception as e :
147- logging .error (f"Failed to get pull requests from Forgejo for repo { repo .name } : { e } " )
168+ logging .error (
169+ f"Failed to get pull requests from Forgejo for repo { repo .name } : { e } "
170+ )
148171 return []
149172
150173 def get_branches (self , repo : Repository ) -> list [Branch ]:
151174 try :
152- branches = self .client .repository .repo_list_branches (repo .owner .login , repo .name )
175+ branches = self .client .repository .repo_list_branches (
176+ repo .owner .login , repo .name
177+ )
153178 result = []
154179
155180 for branch in branches :
@@ -161,7 +186,9 @@ def get_branches(self, repo: Repository) -> list[Branch]:
161186 email = author .email if author and author .email else "" ,
162187 )
163188
164- commit_details = self .client .repository .repo_get_single_commit (repo .owner .login , repo .name , commit .id )
189+ commit_details = self .client .repository .repo_get_single_commit (
190+ repo .owner .login , repo .name , commit .id
191+ )
165192 files = [file .filename for file in getattr (commit_details , "files" , [])]
166193
167194 commit_obj = Commit (
@@ -177,27 +204,37 @@ def get_branches(self, repo: Repository) -> list[Branch]:
177204 return result
178205
179206 except Exception as e :
180- logging .error (f"Failed to get branches from Forgejo for repo { repo .name } : { e } " )
207+ logging .error (
208+ f"Failed to get branches from Forgejo for repo { repo .name } : { e } "
209+ )
181210 return []
182211
183212 def get_wiki_pages (self , repo : Repository ) -> list [WikiPage ]:
184213 try :
185- pages = self .client .repository .repo_get_wiki_pages (repo .owner .login , repo .name )
214+ pages = self .client .repository .repo_get_wiki_pages (
215+ repo .owner .login , repo .name
216+ )
186217 result = []
187218
188219 for page in pages :
189- page_details = self .client .repository .repo_get_wiki_page (repo .owner .login , repo .name , page .title )
220+ page_details = self .client .repository .repo_get_wiki_page (
221+ repo .owner .login , repo .name , page .title
222+ )
190223
191224 wiki_page = WikiPage (
192225 title = page_details .title ,
193- content = base64 .b64decode (page_details .content_base_64 ).decode ('utf-8' )
226+ content = base64 .b64decode (page_details .content_base_64 ).decode (
227+ 'utf-8'
228+ ),
194229 )
195230 result .append (wiki_page )
196231
197232 return result
198233
199234 except Exception as e :
200- logging .error (f"Failed to get wiki pages from Forgejo for repo { repo .name } : { e } " )
235+ logging .error (
236+ f"Failed to get wiki pages from Forgejo for repo { repo .name } : { e } "
237+ )
201238 return []
202239
203240 def get_forks (self , repo : Repository ) -> list [Repository ]:
@@ -215,8 +252,7 @@ def get_forks(self, repo: Repository) -> list[Repository]:
215252 name = fork .name ,
216253 url = fork .html_url ,
217254 default_branch = default_branch ,
218- owner = owner
219-
255+ owner = owner ,
220256 )
221257 )
222258 return result
@@ -229,7 +265,9 @@ def get_comments(self, repo, obj) -> list[Comment]:
229265 result = []
230266 try :
231267 if isinstance (obj , Issue ):
232- comments = self .client .issue .get_repo_comments (repo .owner .login , repo .name )
268+ comments = self .client .issue .get_repo_comments (
269+ repo .owner .login , repo .name
270+ )
233271 result = [
234272 Comment (
235273 body = c .body ,
@@ -240,8 +278,9 @@ def get_comments(self, repo, obj) -> list[Comment]:
240278 ]
241279
242280 elif isinstance (obj , PullRequest ):
243- comments = self .client .repository .repo_get_pull_review_comments (repo .owner .login , repo .name , obj ._id ,
244- 100000 ) # нет id комментария
281+ comments = self .client .repository .repo_get_pull_review_comments (
282+ repo .owner .login , repo .name , obj ._id , 100000
283+ ) # нет id комментария
245284 result = [
246285 Comment (
247286 body = c .body ,
0 commit comments