Skip to content

Commit dea1d13

Browse files
black
1 parent 82305b1 commit dea1d13

File tree

9 files changed

+125
-41
lines changed

9 files changed

+125
-41
lines changed

GitHubRepoAPI.py

Lines changed: 63 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
Branch,
1010
IRepositoryAPI,
1111
User,
12-
Comment
12+
Comment,
1313
)
1414
from github import Github
1515

@@ -22,7 +22,17 @@ def __init__(self, client):
2222
def get_repository(self, id: str) -> Repository | None:
2323
try:
2424
repo = self.client.get_repo(id)
25-
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))
25+
return Repository(
26+
_id=repo.full_name,
27+
name=repo.name,
28+
url=repo.html_url,
29+
default_branch=Branch(name=repo.default_branch, last_commit=None),
30+
owner=User(
31+
login=repo.owner.login,
32+
username=repo.owner.name,
33+
email=repo.owner.email,
34+
),
35+
)
2636
except Exception as e:
2737
logging.error(f"Failed to get repository {id} from GitHub: {e}")
2838
return None
@@ -38,10 +48,7 @@ def get_commits(self, repo: Repository) -> list[Commit]:
3848
c.author.login if c.author else "unknown", c.commit.author.email
3949
),
4050
date=c.commit.author.date,
41-
files=[
42-
f.filename
43-
for f in c.files
44-
]
51+
files=[f.filename for f in c.files],
4552
)
4653
for c in commits
4754
]
@@ -71,14 +78,21 @@ def get_issues(self, repo: Repository) -> list[Issue]:
7178
state=i.state,
7279
created_at=i.created_at,
7380
closed_at=i.closed_at,
74-
closed_by=User(login=i.closed_by.login,username=i.closed_by.name,email=i.closed_by.email) if i.closed_by else None,
81+
closed_by=(
82+
User(
83+
login=i.closed_by.login,
84+
username=i.closed_by.name,
85+
email=i.closed_by.email,
86+
)
87+
if i.closed_by
88+
else None
89+
),
7590
body=i.body,
76-
user=User(login=i.user.login,username=i.user.name,email=i.user.email),
77-
labels= [
78-
l.name
79-
for l in i.labels
80-
],
81-
milestone=i.milestone.title if i.milestone else None
91+
user=User(
92+
login=i.user.login, username=i.user.name, email=i.user.email
93+
),
94+
labels=[l.name for l in i.labels],
95+
milestone=i.milestone.title if i.milestone else None,
8296
)
8397
for i in issues
8498
]
@@ -93,24 +107,28 @@ def get_pull_requests(self, repo: Repository) -> list[PullRequest]:
93107
PullRequest(
94108
_id=p.number,
95109
title=p.title,
96-
author=User(login=p.user.login, username=p.user.name, email=p.user.email),
110+
author=User(
111+
login=p.user.login, username=p.user.name, email=p.user.email
112+
),
97113
state=p.state,
98114
created_at=p.created_at,
99115
head_label=p.head.label,
100116
base_label=p.base.label,
101117
head_ref=p.head.ref,
102118
base_ref=p.base.ref,
103-
merged_by=User(login=p.merged_by.login, username=p.merged_by.name, email=p.merged_by.email) if p.merged_by else None,
104-
files=[
105-
f.filename
106-
for f in p.get_files()
107-
],
119+
merged_by=(
120+
User(
121+
login=p.merged_by.login,
122+
username=p.merged_by.name,
123+
email=p.merged_by.email,
124+
)
125+
if p.merged_by
126+
else None
127+
),
128+
files=[f.filename for f in p.get_files()],
108129
issue_url=p.issue_url,
109-
labels= [
110-
l.name
111-
for l in p.labels
112-
],
113-
milestone=p.milestone.title if p.milestone else None
130+
labels=[l.name for l in p.labels],
131+
milestone=p.milestone.title if p.milestone else None,
114132
)
115133
for p in pulls
116134
]
@@ -159,7 +177,9 @@ def get_forks(self, repo: Repository) -> list[Repository]:
159177
repo_client = self.client.get_repo(repo._id)
160178
result = []
161179
for r in repo_client.get_forks():
162-
result.append(Repository(_id=repo.full_name, name=repo.name, url=repo.html_url))
180+
result.append(
181+
Repository(_id=repo.full_name, name=repo.name, url=repo.html_url)
182+
)
163183
return result
164184

165185
def get_comments(self, repo, obj) -> list[Comment]:
@@ -173,7 +193,15 @@ def get_comments(self, repo, obj) -> list[Comment]:
173193
issue = i
174194
break
175195
for c in issue.get_comments():
176-
result.append(Comment(body=c.body,created_at=c.created_at,author=User(login=c.user.login,username=c.user.name,email=c.user.email)))
196+
result.append(
197+
Comment(
198+
body=c.body,
199+
created_at=c.created_at,
200+
author=User(
201+
login=c.user.login, username=c.user.name, email=c.user.email
202+
),
203+
)
204+
)
177205
elif type(obj) == PullRequest:
178206
# TODO оптимизировать
179207
pulls = self.client.get_repo(repo._id).get_pulls(state='all')
@@ -183,7 +211,15 @@ def get_comments(self, repo, obj) -> list[Comment]:
183211
pull = p
184212
break
185213
for c in pull.get_comments():
186-
result.append(Comment(body=c.body,created_at=c.created_at,author=User(login=c.user.login,username=c.user.name,email=c.user.email)))
214+
result.append(
215+
Comment(
216+
body=c.body,
217+
created_at=c.created_at,
218+
author=User(
219+
login=c.user.login, username=c.user.name, email=c.user.email
220+
),
221+
)
222+
)
187223

188224
return result
189225

commits_parser.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@
1717
'branch',
1818
)
1919

20-
def log_repository_commits(client: IRepositoryAPI, repository, csv_name, start, finish, branch):
20+
21+
def log_repository_commits(
22+
client: IRepositoryAPI, repository, csv_name, start, finish, branch
23+
):
2124
branches = []
2225
match branch:
2326
case 'all':
@@ -55,8 +58,9 @@ def log_repository_commits(client: IRepositoryAPI, repository, csv_name, start,
5558

5659
sleep(TIMEDELTA)
5760

61+
5862
def log_commits(
59-
client: IRepositoryAPI, working_repos, csv_name, start, finish, branch, fork_flag
63+
client: IRepositoryAPI, working_repos, csv_name, start, finish, branch, fork_flag
6064
):
6165
logger.log_to_csv(csv_name, FIELDNAMES)
6266

contributors_parser.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@
2121
'site_admin',
2222
)
2323

24-
def log_repository_contributors(client: IRepositoryAPI, repository: Repository, csv_name: str):
24+
25+
def log_repository_contributors(
26+
client: IRepositoryAPI, repository: Repository, csv_name: str
27+
):
2528
contributors_stats = get_contributors_stats(client, repository)
2629

2730
nvl = lambda val: val or EMPTY_FIELD
@@ -50,6 +53,7 @@ def log_repository_contributors(client: IRepositoryAPI, repository: Repository,
5053

5154
sleep(TIMEDELTA)
5255

56+
5357
def get_contributors_stats(client: IRepositoryAPI, repository: Repository) -> dict:
5458
contributors_stats = dict()
5559

@@ -72,6 +76,7 @@ def get_contributors_stats(client: IRepositoryAPI, repository: Repository) -> di
7276

7377
return contributors_stats
7478

79+
7580
def log_contributors(
7681
client: IRepositoryAPI, working_repos: Generator, csv_name: str, fork_flag: bool
7782
):

forgejo/main.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
from dotenv import dotenv_values
22
from pyforgejo import PyforgejoApi
33

4+
45
def require_env_arg(config, name):
56
if not name in config:
67
print("Cannot find " + name + " in .env file. Aborting...")
78
exit(1)
89

10+
911
config = dotenv_values(".env")
1012
require_env_arg(config, "API_TOKEN")
1113
require_env_arg(config, "BASE_URL")
1214
require_env_arg(config, "REPO_OWNER")
1315
require_env_arg(config, "REPO_NAME")
1416

15-
client = PyforgejoApi(
16-
base_url=config["BASE_URL"], api_key=config["API_TOKEN"]
17-
)
17+
client = PyforgejoApi(base_url=config["BASE_URL"], api_key=config["API_TOKEN"])
1818

1919
repo = client.repository.repo_get(owner=config["REPO_OWNER"], repo=config["REPO_NAME"])
2020

git_logger.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
TIMEDELTA = 0.05
55
TIMEZONE = 'Europe/Moscow'
66

7+
78
def login(token):
89
try:
910
client = RepositoryFactory.create_api("github", token)
@@ -74,8 +75,9 @@ def get_next_repo(client: IRepositoryAPI, repositories):
7475
else:
7576
yield repo
7677

78+
7779
def get_assignee_story(github_object):
78-
#TODO
80+
# TODO
7981
return ""
8082
assignee_result = ""
8183
events = (

interface_wrapper.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,20 @@
1111

1212
# Модельные классы
1313

14+
1415
@dataclass
1516
class Contributor:
1617
username: str
1718
email: str
1819

20+
1921
@dataclass
2022
class User:
2123
login: str
2224
username: str
2325
email: str
2426

27+
2528
@dataclass
2629
class Commit:
2730
_id: str
@@ -30,6 +33,7 @@ class Commit:
3033
date: datetime
3134
files: list[str]
3235

36+
3337
@dataclass
3438
class Branch:
3539
name: str
@@ -44,6 +48,7 @@ class Repository:
4448
default_branch: Branch
4549
owner: User
4650

51+
4752
@dataclass
4853
class Issue:
4954
_id: str
@@ -58,6 +63,7 @@ class Issue:
5863
milestone: str
5964
files: list[str]
6065

66+
6167
@dataclass
6268
class PullRequest:
6369
_id: int
@@ -82,6 +88,7 @@ class Comment:
8288
created_at: datetime
8389
author: User
8490

91+
8592
@dataclass
8693
class WikiPage:
8794
title: str
@@ -140,6 +147,7 @@ class RepositoryFactory:
140147
@staticmethod
141148
def create_api(source, client) -> IRepositoryAPI:
142149
from GitHubRepoAPI import GitHubRepoAPI
150+
143151
if client is None:
144152
raise ValueError("Client cannot be None")
145153
if source == 'github':

invites_parser.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
TIMEDELTA = 0.05
55
TIMEZONE = 'Europe/Moscow'
66

7+
78
def login(token):
89
client = Github(login_or_token=token)
910

@@ -17,6 +18,7 @@ def login(token):
1718
else:
1819
return client
1920

21+
2022
def get_next_repo(client: IRepositoryAPI, repositories):
2123
api = GitHubRepoAPI.GitHubRepoAPI(client) # Используем обёртку
2224
with open(repositories, 'r') as file:
@@ -32,6 +34,7 @@ def get_next_repo(client: IRepositoryAPI, repositories):
3234
else:
3335
yield repo
3436

37+
3538
def get_assignee_story(github_object):
3639
assignee_result = ""
3740
events = (

issues_parser.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
'milestone',
3535
)
3636

37+
3738
def get_connected_pulls(issue_number, repo_owner, repo_name, token):
3839
# TODO как-то заменить
3940
return
@@ -110,7 +111,10 @@ def get_connected_pulls(issue_number, repo_owner, repo_name, token):
110111
return ';'.join(list_url)
111112
return 'Empty field'
112113

113-
def log_repository_issues(client: IRepositoryAPI, repository: Repository, csv_name, token, start, finish):
114+
115+
def log_repository_issues(
116+
client: IRepositoryAPI, repository: Repository, csv_name, token, start, finish
117+
):
114118
issues = client.get_issues(repository)
115119
for issue in issues:
116120
if (
@@ -172,7 +176,10 @@ def log_repository_issues(client: IRepositoryAPI, repository: Repository, csv_na
172176

173177
sleep(TIMEDELTA)
174178

175-
def log_issues(client: IRepositoryAPI, working_repo, csv_name, token, start, finish, fork_flag):
179+
180+
def log_issues(
181+
client: IRepositoryAPI, working_repo, csv_name, token, start, finish, fork_flag
182+
):
176183
logger.log_to_csv(csv_name, FIELDNAMES)
177184

178185
for repo, token in working_repo:
@@ -183,7 +190,9 @@ def log_issues(client: IRepositoryAPI, working_repo, csv_name, token, start, fin
183190
forked_repos = client.get_forks(repo)
184191
for forked_repo in forked_repos:
185192
logger.log_title("FORKED:", forked_repo.name)
186-
log_repository_issues(client, forked_repo, csv_name, token, start, finish)
193+
log_repository_issues(
194+
client, forked_repo, csv_name, token, start, finish
195+
)
187196
sleep(TIMEDELTA)
188197
sleep(TIMEDELTA)
189198
except Exception as e:

0 commit comments

Comments
 (0)