Skip to content

Commit 4e2c5af

Browse files
committed
fixed linter
1 parent f60c41d commit 4e2c5af

File tree

1 file changed

+76
-76
lines changed

1 file changed

+76
-76
lines changed

issues_parser.py

Lines changed: 76 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from datetime import datetime
44
from time import sleep
55
from typing import Generator
6-
import os
76
import pytz
87
import requests
98

@@ -51,34 +50,34 @@ def get_connected_pulls(
5150
base_url: str | None = None
5251
) -> str:
5352

54-
if base_url: # Forgejo
53+
if base_url: # Forgejo
5554
headers = {
5655
"Authorization": f"token {token}",
5756
"Accept": "application/json"
5857
}
59-
58+
6059
connected_prs = set()
6160
api_base = f"{base_url}/api/v1/repos/{repo_owner}/{repo_name}"
62-
61+
6362
try:
6463
comments_response = requests.get(
6564
f"{api_base}/issues/{issue_number}/comments",
6665
headers=headers
6766
)
6867
comments_response.raise_for_status()
69-
68+
7069
for comment in comments_response.json():
7170
body = comment.get("body", "")
7271
if not body:
7372
continue
74-
73+
7574
for word in body.split():
7675
clean_word = word.strip(".,:;!?()[]{}")
7776
if len(clean_word) > 1 and clean_word[1:].isdigit():
78-
if clean_word.startswith('#'):
77+
if clean_word.startswith('#'):
7978
pr_num = clean_word[1:]
8079
connected_prs.add(f"{base_url}/{repo_owner}/{repo_name}/pulls/{pr_num}")
81-
elif clean_word.startswith('!'):
80+
elif clean_word.startswith('!'):
8281
pr_num = clean_word[1:]
8382
connected_prs.add(f"{base_url}/{repo_owner}/{repo_name}/pulls/{pr_num}")
8483

@@ -87,92 +86,93 @@ def get_connected_pulls(
8786
headers=headers
8887
)
8988
prs_response.raise_for_status()
90-
89+
9190
for pr in prs_response.json():
9291
if f"#{issue_number}" in pr.get("body", ""):
9392
connected_prs.add(pr.get("html_url"))
94-
93+
9594
except requests.exceptions.RequestException as e:
9695
print(f"[Warning] Failed to fetch connected PRs: {str(e)}")
9796
return 'Empty field'
98-
97+
9998
return ';'.join(sorted(connected_prs)) if connected_prs else 'Empty field'
10099

101-
else: # PyGithub
102-
repo_owner = repo_owner.login
103-
# Формирование запроса GraphQL
104-
query = """
105-
{
106-
repository(owner: "%s", name: "%s") {
107-
issue(number: %d) {
108-
timelineItems(first: 50, itemTypes:[CONNECTED_EVENT,CROSS_REFERENCED_EVENT]) {
109-
filteredCount
110-
nodes {
111-
... on ConnectedEvent {
112-
ConnectedEvent: subject {
113-
... on PullRequest {
114-
number
115-
title
116-
url
117-
}
118-
}
100+
else: # PyGithub
101+
repo_owner = repo_owner.login
102+
# Формирование запроса GraphQL
103+
query = """
104+
{
105+
repository(owner: "%s", name: "%s") {
106+
issue(number: %d) {
107+
timelineItems(first: 50, itemTypes:[CONNECTED_EVENT,CROSS_REFERENCED_EVENT]) {
108+
filteredCount
109+
nodes {
110+
... on ConnectedEvent {
111+
ConnectedEvent: subject {
112+
... on PullRequest {
113+
number
114+
title
115+
url
119116
}
120-
... on CrossReferencedEvent {
121-
CrossReferencedEvent: source {
122-
... on PullRequest {
123-
number
124-
title
125-
url
126-
}
127-
}
117+
}
118+
}
119+
... on CrossReferencedEvent {
120+
CrossReferencedEvent: source {
121+
... on PullRequest {
122+
number
123+
title
124+
url
128125
}
129126
}
130127
}
131128
}
132129
}
133-
}""" % (
134-
repo_owner,
135-
repo_name,
136-
issue_number,
137-
)
138-
139-
# Формирование заголовков запроса
140-
headers = {
141-
"Authorization": f"Bearer {token}",
142-
"Content-Type": "application/json",
143130
}
131+
}
132+
}""" % (
133+
repo_owner,
134+
repo_name,
135+
issue_number,
136+
)
144137

145-
# Отправка запроса GraphQL
146-
response = requests.post(
147-
"https://api.github.com/graphql",
148-
headers=headers,
149-
data=json.dumps({"query": query}),
150-
)
151-
response_data = response.json()
152-
# Обработка полученных данных
153-
pull_request_data = response_data["data"]["repository"]["issue"]
154-
list_url = []
155-
if pull_request_data is not None:
156-
issues_data = pull_request_data["timelineItems"]["nodes"]
157-
for pulls in issues_data:
158-
if (
159-
pulls.get("CrossReferencedEvent") is not None
160-
and pulls.get("CrossReferencedEvent").get("url") is not None
161-
and pulls.get("CrossReferencedEvent").get("url") not in list_url
162-
):
163-
list_url.append(pulls.get("CrossReferencedEvent").get("url"))
164-
if (
165-
pulls.get("ConnectedEvent") is not None
166-
and pulls.get("ConnectedEvent").get("url") is not None
167-
and pulls.get("ConnectedEvent").get("url") not in list_url
168-
):
169-
list_url.append(pulls.get("ConnectedEvent").get("url"))
170-
if list_url == []:
171-
return 'Empty field'
172-
else:
173-
return ';'.join(list_url)
138+
# Формирование заголовков запроса
139+
headers = {
140+
"Authorization": f"Bearer {token}",
141+
"Content-Type": "application/json",
142+
}
143+
144+
# Отправка запроса GraphQL
145+
response = requests.post(
146+
"https://api.github.com/graphql",
147+
headers=headers,
148+
data=json.dumps({"query": query}),
149+
)
150+
response_data = response.json()
151+
# Обработка полученных данных
152+
pull_request_data = response_data["data"]["repository"]["issue"]
153+
list_url = []
154+
if pull_request_data is not None:
155+
issues_data = pull_request_data["timelineItems"]["nodes"]
156+
for pulls in issues_data:
157+
if (
158+
pulls.get("CrossReferencedEvent") is not None
159+
and pulls.get("CrossReferencedEvent").get("url") is not None
160+
and pulls.get("CrossReferencedEvent").get("url") not in list_url
161+
):
162+
list_url.append(pulls.get("CrossReferencedEvent").get("url"))
163+
if (
164+
pulls.get("ConnectedEvent") is not None
165+
and pulls.get("ConnectedEvent").get("url") is not None
166+
and pulls.get("ConnectedEvent").get("url") not in list_url
167+
):
168+
list_url.append(pulls.get("ConnectedEvent").get("url"))
169+
if list_url == []:
170+
return 'Empty field'
171+
else:
172+
return ';'.join(list_url)
174173
return 'Empty field'
175174

175+
176176
def log_repository_issues(
177177
client: IRepositoryAPI, repository: Repository, csv_name, token, start, finish
178178
):

0 commit comments

Comments
 (0)