From 8ee15d5725e51f201d6f9ff1a6dce6b09aaa7bae Mon Sep 17 00:00:00 2001 From: shenmo Date: Mon, 3 Aug 2026 19:39:56 +0800 Subject: [PATCH] =?UTF-8?q?fix(sync.py):=20=E4=BF=AE=E6=AD=A3Gitee?= =?UTF-8?q?=E4=BB=93=E5=BA=93=E5=90=8D=E7=A7=B0=E8=8E=B7=E5=8F=96=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E4=BD=BF=E7=94=A8=E5=AE=89=E5=85=A8=E8=B7=AF?= =?UTF-8?q?=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gitee的name字段可能包含非法字符,改用path作为仓库URL安全路径,确保clone/push URL合法 --- sync-gitee-to-github/sync.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sync-gitee-to-github/sync.py b/sync-gitee-to-github/sync.py index 73018b5..846c237 100644 --- a/sync-gitee-to-github/sync.py +++ b/sync-gitee-to-github/sync.py @@ -42,7 +42,12 @@ def apiGet(path, params): def getGiteeRepos(token): - """分页获取 Gitee 组织下全部仓库名""" + """分页获取 Gitee 组织下全部仓库的 path(URL 安全路径) + + Gitee API 返回的 name 是仓库别名(可能含大写、中文或括号,如 + "CTranslate2"),不能直接用作 clone URL 的路径组件;path 才是 URL + 安全的仓库路径(如 "ctranslate2"),用它拼接 clone/push URL 才合法。 + """ repoList = [] page = 1 while True: @@ -52,7 +57,7 @@ def getGiteeRepos(token): data = apiGet(f"/orgs/{orgName}/repos", params) if not isinstance(data, list) or len(data) == 0: break - repoList.extend([i["name"] for i in data]) + repoList.extend([i["path"] for i in data]) page += 1 return repoList