Skip to content

Commit a5e27a4

Browse files
apply black
1 parent 0fc03b7 commit a5e27a4

File tree

3 files changed

+82
-37
lines changed

3 files changed

+82
-37
lines changed

ForgejoRepoAPI.py

Lines changed: 68 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
PullRequest,
1111
WikiPage,
1212
Comment,
13-
Invite
13+
Invite,
1414
)
1515
import base64
1616
import 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,

git_logger.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
from interface_wrapper import (
2-
RepositoryFactory,
3-
IRepositoryAPI
4-
)
1+
from interface_wrapper import RepositoryFactory, IRepositoryAPI
52
from time import sleep
63

74
TIMEDELTA = 0.05
@@ -25,8 +22,13 @@ def __init__(self, source: str, tokens: list[str], base_url: str | None = None):
2522
self.clients = self._init_clients(source, tokens, base_url)
2623
self.cur_client = None
2724

28-
def _init_clients(self, source: str, tokens: list[str], base_url: str | None) -> list[dict]:
29-
clients = [{"client": login(source, token, base_url), "token": token} for token in tokens]
25+
def _init_clients(
26+
self, source: str, tokens: list[str], base_url: str | None
27+
) -> list[dict]:
28+
clients = [
29+
{"client": login(source, token, base_url), "token": token}
30+
for token in tokens
31+
]
3032

3133
return clients
3234

interface_wrapper.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,15 +175,19 @@ def get_rate_limiting(self) -> tuple[int, int]:
175175
# Фабрика для создания API
176176
class RepositoryFactory:
177177
@staticmethod
178-
def create_api(source: str, token: str, base_url: str | None = None) -> IRepositoryAPI:
178+
def create_api(
179+
source: str, token: str, base_url: str | None = None
180+
) -> IRepositoryAPI:
179181
from GitHubRepoAPI import GitHubRepoAPI
180182
from ForgejoRepoAPI import ForgejoRepoAPI
181183

182184
if source == 'github':
183185
return GitHubRepoAPI(Github(token))
184186
elif source == 'forgejo':
185187
if not isinstance(base_url, str):
186-
raise ValueError(f"base_url for PyforgejoApi should be str, got {type(base_url)}")
188+
raise ValueError(
189+
f"base_url for PyforgejoApi should be str, got {type(base_url)}"
190+
)
187191
return ForgejoRepoAPI(PyforgejoApi(api_key=token, base_url=base_url))
188192
else:
189193
raise ValueError(f"Unsupported source: {source}")

0 commit comments

Comments
 (0)