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) ``` ## 备注