From a14e3e7621df5306250a877ea79d0f75b99d9a41 Mon Sep 17 00:00:00 2001 From: hulk Date: Thu, 10 Sep 2026 23:51:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(HDMI-Tool):=20publish=5Fgitea=20=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=20assets=20=E7=BA=AF=E6=95=B0=E7=BB=84=E8=BF=94?= =?UTF-8?q?=E5=9B=9E;=20=E6=96=87=E6=A1=A3=E8=A1=A5=E8=AE=B0=E6=9C=AC?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E9=9C=80=20--insecure?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HDMI-Tool/AGENTS.md | 6 ++++-- HDMI-Tool/README.md | 2 +- HDMI-Tool/src/publish_gitea.py | 6 +++++- README.md | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/HDMI-Tool/AGENTS.md b/HDMI-Tool/AGENTS.md index 797e15e..56a6690 100644 --- a/HDMI-Tool/AGENTS.md +++ b/HDMI-Tool/AGENTS.md @@ -74,7 +74,7 @@ python gen_bw_patterns.py ; python gen_solid_colors.py # 仅当改了图案生 python build_exe.py # → ../release/HDMI-Tool.exe(缺 PyInstaller 会自动 pip install) python build_exe.py --debug # 附加带控制台的 HDMI-Tool-console.exe(调试 --dump 用) python package_release.py <版本> # → ../release/HDMI-Tool-v<版本>-win64.zip -python publish_gitea.py HDMI-Tool-v<版本>-win64.zip --replace # 上传(需 GITEA_TOKEN 环境变量或 --token) +python publish_gitea.py HDMI-Tool-v<版本>-win64.zip --replace --insecure # 上传(需 GITEA_TOKEN) ``` 发布约定: @@ -83,7 +83,9 @@ python publish_gitea.py HDMI-Tool-v<版本>-win64.zip --replace # 上传(需 G - **exe 与 pattern_slots.json 改动跟随源码提交入库;zip 永不入库**(.gitignore 已挡); - publish_gitea.py 幂等:release 已存在则复用,同名资产默认跳过,`--replace` 删旧重传; - Gitea 实例 `gitea.hulk.wang`,API 走 https(443),git 走 ssh(1234)——从 origin 远程自动解析; - 自签证书报 SSL 错时加 `--insecure`。 + python urllib 连该实例会在部分请求上报 `SSL: UNEXPECTED_EOF`,**实际发布需加 `--insecure`**; +- 本实例 Gitea 的 API 兼容性怪癖:`GET /releases/tags/{tag}` 返回的 `assets` 是纯数组, + 而 `GET /releases/{id}` 是 `{items:[...]}` —— publish_gitea.py 已按两种形状兼容,勿"简化"回去。 ## 6. 已知坑(历史踩过,勿重蹈) diff --git a/HDMI-Tool/README.md b/HDMI-Tool/README.md index 8871579..a6142c7 100644 --- a/HDMI-Tool/README.md +++ b/HDMI-Tool/README.md @@ -168,7 +168,7 @@ cd src python build_exe.py # 打包 → ../release/HDMI-Tool.exe(自动装 PyInstaller) python build_exe.py --debug # 额外出一个带控制台的调试变体(--dump 可用) python package_release.py 0.1.0 # 组装 release/HDMI-Tool-v0.1.0-win64.zip -python publish_gitea.py HDMI-Tool-v0.1.0-win64.zip # 上传 Gitea Release(需 GITEA_TOKEN) +python publish_gitea.py HDMI-Tool-v0.1.0-win64.zip --insecure # 上传 Gitea Release(需 GITEA_TOKEN) ``` ## 9. 注意事项 / FAQ diff --git a/HDMI-Tool/src/publish_gitea.py b/HDMI-Tool/src/publish_gitea.py index d14eb55..cd1ebaa 100644 --- a/HDMI-Tool/src/publish_gitea.py +++ b/HDMI-Tool/src/publish_gitea.py @@ -78,7 +78,11 @@ class Api: status, rel = self.request('GET', f'/releases/{release_id}') if status != 200: sys.exit(f'读取 release {release_id} 失败: {status} {rel}') - for asset in (rel.get('assets') or {}).get('items', []): + # Gitea 版本差异: assets 可能是 {items:[...]} 或纯数组 + assets = rel.get('assets') or [] + if isinstance(assets, dict): + assets = assets.get('items', []) + for asset in assets: if asset['name'] == name: if not replace: print(f'资产 {name} 已存在, 跳过(覆盖请加 --replace)') diff --git a/README.md b/README.md index 6df6aea..7d5b799 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ LT8619C_Debug_Tools/ cd HDMI-Tool/src python build_exe.py # 打包 → ../release/HDMI-Tool.exe python package_release.py <版本> # → ../release/HDMI-Tool-v<版本>-win64.zip -python publish_gitea.py HDMI-Tool-v<版本>-win64.zip # 上传 Gitea Release(需 GITEA_TOKEN) +python publish_gitea.py HDMI-Tool-v<版本>-win64.zip --insecure # 上传 Gitea Release(需 GITEA_TOKEN) ``` ## 备注