Skip to content

Commit 2bc673c

Browse files
committed
fix bugs
1 parent f25db5b commit 2bc673c

File tree

2 files changed

+38
-27
lines changed

2 files changed

+38
-27
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
.DS_Store
2+
test*

actions/sync-issues-to-feishu.py

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -98,29 +98,39 @@ def get_issues_list(self, repo_name: str) -> list:
9898
Args:
9999
repo_name (str): 仓库名称
100100
"""
101-
issues = []
102-
# 获取第一页 issues 列表
101+
url = f"https://api.github.com/repos/{repo_name}/issues"
102+
headers = {
103+
"Authorization": "token " + self.token,
104+
"Accept": "application/vnd.github+json",
105+
}
106+
params = {
107+
"state": "all",
108+
"per_page": 100,
109+
}
110+
111+
all_issues = []
103112
page = 1
104-
r = requests.get(
105-
url=f"https://api.github.com/repos/{repo_name}/issues?page={page}",
106-
headers={
107-
"Authorization": "token " + self.token,
108-
"Accept": "application/vnd.github.v3+json",
109-
},
110-
)
111-
issues.extend(r.json())
112-
# 获取剩余 issues 列表
113-
while r.links.get("next"):
113+
114+
while True:
115+
params["page"] = page
116+
print(f"Fetching page {page} of issues...")
117+
response = requests.get(url, headers=headers, params=params)
118+
if response.status_code != 200:
119+
raise Exception(
120+
f"Error retrieving issues: {response.status_code}, {response.text}"
121+
)
122+
123+
issues = response.json()
124+
if not issues:
125+
break
126+
127+
all_issues.extend(issues)
114128
page += 1
115-
r = requests.get(
116-
url=f"https://api.github.com/repos/{repo_name}/issues?page={page}",
117-
headers={
118-
"Authorization": "token " + self.token,
119-
"Accept": "application/vnd.github.v3+json",
120-
},
121-
)
122-
issues.extend(r.json())
123-
return issues
129+
130+
# 仅保留 Issue,去掉 PR
131+
noly_issues = [i for i in all_issues if "pull_request" not in i.keys()]
132+
133+
return noly_issues
124134

125135
def patch_issues_info(self, issues_api_url: str, data: dict) -> None:
126136
"""更新 issues 信息
@@ -205,7 +215,6 @@ def sync_issues(self, repo_name: str) -> None:
205215
try:
206216
issue_title = issue["title"]
207217
issue_number = issue["number"]
208-
issue_title_ = f"{issue_number}-{issue_title}"
209218
issue_state = issue["state"]
210219
issues_html_url = issue["html_url"]
211220
# assignees
@@ -235,7 +244,8 @@ def sync_issues(self, repo_name: str) -> None:
235244
# payloads
236245
payloads = {
237246
"fields": {
238-
"ISSUE_TITLE": issue_title_,
247+
"ISSUE_TITLE": issue_title,
248+
"ISSUE_NUM": issue_number,
239249
"SCENARIO_TITLE": issue_title.replace("challenge-", "")
240250
.replace("lab-", "")
241251
.replace("-", " ")
@@ -253,20 +263,20 @@ def sync_issues(self, repo_name: str) -> None:
253263
}
254264
}
255265
# Update record
256-
if issue_title_ in records_dicts.keys():
266+
if issue_title in records_dicts.keys():
257267
r = self.feishu.update_bitable_record(
258268
self.app_token,
259269
self.table_id,
260-
records_dicts[issue_title_],
270+
records_dicts[issue_title],
261271
payloads,
262272
)
263-
print(f"→ Updating {issue_title_} {r['msg'].upper()}")
273+
print(f"→ Updating {issue_title} {r['msg'].upper()}")
264274
else:
265275
# Add record
266276
r = self.feishu.add_bitable_record(
267277
self.app_token, self.table_id, payloads
268278
)
269-
print(f"↑ Adding {issue_title_} {r['msg'].upper()}")
279+
print(f"↑ Adding {issue_title} {r['msg'].upper()}")
270280

271281
except Exception as e:
272282
print(f"Erro: {e}")

0 commit comments

Comments
 (0)