fix(HDMI-Tool): publish_gitea 兼容 assets 纯数组返回; 文档补记本实例需 --insecure

This commit is contained in:
2026-09-10 23:51:39 +08:00
parent 7ab8264752
commit a39a4a665a
4 changed files with 11 additions and 5 deletions
+4 -2
View File
@@ -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 # → ../release/HDMI-Tool.exe(缺 PyInstaller 会自动 pip install)
python build_exe.py --debug # 附加带控制台的 HDMI-Tool-console.exe(调试 --dump 用) python build_exe.py --debug # 附加带控制台的 HDMI-Tool-console.exe(调试 --dump 用)
python package_release.py <版本> # → ../release/HDMI-Tool-v<版本>-win64.zip 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 已挡); - **exe 与 pattern_slots.json 改动跟随源码提交入库;zip 永不入库**(.gitignore 已挡);
- publish_gitea.py 幂等:release 已存在则复用,同名资产默认跳过,`--replace` 删旧重传; - publish_gitea.py 幂等:release 已存在则复用,同名资产默认跳过,`--replace` 删旧重传;
- Gitea 实例 `gitea.hulk.wang`,API 走 https(443),git 走 ssh(1234)——从 origin 远程自动解析; - 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. 已知坑(历史踩过,勿重蹈) ## 6. 已知坑(历史踩过,勿重蹈)
+1 -1
View File
@@ -168,7 +168,7 @@ cd src
python build_exe.py # 打包 → ../release/HDMI-Tool.exe(自动装 PyInstaller) python build_exe.py # 打包 → ../release/HDMI-Tool.exe(自动装 PyInstaller)
python build_exe.py --debug # 额外出一个带控制台的调试变体(--dump 可用) python build_exe.py --debug # 额外出一个带控制台的调试变体(--dump 可用)
python package_release.py 0.1.0 # 组装 release/HDMI-Tool-v0.1.0-win64.zip 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 ## 9. 注意事项 / FAQ
+5 -1
View File
@@ -78,7 +78,11 @@ class Api:
status, rel = self.request('GET', f'/releases/{release_id}') status, rel = self.request('GET', f'/releases/{release_id}')
if status != 200: if status != 200:
sys.exit(f'读取 release {release_id} 失败: {status} {rel}') 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 asset['name'] == name:
if not replace: if not replace:
print(f'资产 {name} 已存在, 跳过(覆盖请加 --replace)') print(f'资产 {name} 已存在, 跳过(覆盖请加 --replace)')
+1 -1
View File
@@ -41,7 +41,7 @@ LT8619C_Debug_Tools/
cd HDMI-Tool/src cd HDMI-Tool/src
python build_exe.py # 打包 → ../release/HDMI-Tool.exe python build_exe.py # 打包 → ../release/HDMI-Tool.exe
python package_release.py <版本> # → ../release/HDMI-Tool-v<版本>-win64.zip 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)
``` ```
## 备注 ## 备注