Skip to content

Commit 44a85b5

Browse files
fix forgejo
1 parent 0c344e1 commit 44a85b5

File tree

2 files changed

+28
-35
lines changed

2 files changed

+28
-35
lines changed

src/ForgejoRepoAPI.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ def get_workflow_runs(self, repo) -> list[WorkflowRun]:
275275
return []
276276

277277
def get_base_url(self) -> str:
278-
return self.client.base_url
278+
return self.client._client_wrapper.get_base_url()
279279

280280

281281
# Точка входа для тестирования

src/git_logger.py

Lines changed: 27 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -88,39 +88,32 @@ def get_next_binded_repo(clients: Clients, repositories: list[str]):
8888
def get_assignee_story(git_object, client, token, repository):
8989
assignee_result = ""
9090

91-
try:
92-
repo_owner = repository.owner.login
93-
repo_name = repository.name
94-
issue_index = git_object._id # Для pull request и issue одинаково
95-
96-
base_url = client.get_base_url().rstrip('/')
97-
98-
url = f"{base_url}/repos/{repo_owner}/{repo_name}/issues/{issue_index}/timeline"
99-
headers = {
100-
"Authorization": f"Bearer {token}" if client is GitHubRepoAPI else f"token {token}",
101-
"Accept": "application/json"
102-
}
103-
104-
response = requests.get(url, headers=headers)
105-
if response.status_code != 200:
106-
raise Exception(f"Failed to fetch issue timeline: {response.status_code}, {response.text}")
107-
108-
events = response.json()
109-
110-
for event in events:
111-
if event.get('event') in ["assigned", "unassigned"]:
112-
date = event.get('created_at')
113-
assigner = event.get('actor', {}).get('login', 'unknown')
114-
assignee = event.get('assignee', {}).get('login', 'unknown')
115-
116-
assignee_result += f"{date}: {assigner} -"
117-
if event['event'] == "unassigned":
118-
assignee_result += "/"
119-
assignee_result += f"> {assignee}; "
120-
121-
sleep(TIMEDELTA)
122-
123-
except Exception as e:
124-
print(f"get_assignee_story(): error {e}")
91+
repo_owner = repository.owner.login
92+
repo_name = repository.name
93+
issue_index = getattr(git_object, "number", None) or getattr(git_object, "index", None) or getattr(git_object, "_id", None) # Для pull request и issue одинаково
94+
print(issue_index)
95+
96+
base_url = client.get_base_url().rstrip('/')
97+
98+
url = f"{base_url}/repos/{repo_owner}/{repo_name}/issues/{issue_index}/timeline"
99+
headers = {
100+
"Authorization": f"Bearer {token}" if client is GitHubRepoAPI else f"token {token}",
101+
"Accept": "application/json"
102+
}
103+
104+
response = requests.get(url, headers=headers)
105+
if response.status_code != 200:
106+
raise Exception(f"Failed to fetch issue timeline: {response.status_code}, {response.text}")
107+
108+
events = response.json()
109+
110+
results = [
111+
f"{event.get('created_at')}: {event.get('actor', {}).get('login', 'unknown')} -"
112+
+ ("/" if event.get('event') == "unassigned" else "")
113+
+ f"> {event.get('assignee', {}).get('login', 'unknown')}; "
114+
for event in events
115+
if event.get('event') in ["assigned", "unassigned"]
116+
]
117+
assignee_result = ''.join(results)
125118

126119
return assignee_result

0 commit comments

Comments
 (0)