v0.8.4
修复
-
「工作流定义」一栏永远是空的,而「最近运行」里明明有记录。
根因在 Gitea 的接口本身:
GET /actions/workflows只枚举.gitea/workflows,
完全忽略.github/workflows。用你实例上的真实数据对照(表格是最直接的证据):仓库 .gitea/workflows.github/workflows接口返回 actions/build-push-action(169 条运行记录)不存在 10 个 YAML 0 条 actions/black(有运行记录)不存在 13 个 YAML 0 条 GaoXiaogang/cdt_data_assets不存在 不存在 0 条(正常) 也就是说,工作流写在
.github/workflows时(镜像 GitHub Actions 的仓库全是这样),
这一栏必然是空的 —— 不是扩展的问题,但用户看不到东西。现在改成以文件列表为准,接口只用来补「启用状态」:两个目录都列,按文件名与
接口条目合并。实测同两个仓库能列出 10 / 13 个。一开始写的是「接口为空才回落到文件列表」,但那样会漏掉一个仓库同时使用两个目录
的情况 —— 接口有返回就直接 return 了,.github/workflows下的看不见。
这是复查时发现的,已改成两者都取再合并。拿不到状态的条目渲染为状态未知:右侧标出所在目录(如
.github/workflows),
图标不再用「禁止符」—— 不能凭空断言它被停用了。
另外接口本身失败时也不再让整个分组打不开,降级为「没有状态信息」。为什么不干脆用运行记录反推工作流:那样只能看到「跑过的」,
新加还没跑过的会缺席。列目录才是「定义」的完整来源。 -
点作业只看到「正在获取…」,没有日志内容。
这一条查下来并不是"面板没打开",而是服务端确实没有日志可给。接口返回:
{"message":"not found","errors":["logs have been cleaned up"]}Gitea 会对作业日志做保留期清理,旧运行的日志已经不存在了。
此前这种情况会弹一句指向「令牌」的通用报错(0.8.3 已改为按「没有日志」处理)。本次让它明确可辨:
- 输出面板改用
show()而不是show(true)—— 必须确保面板真的被打开并切到该通道,
让出焦点是次要的 - 日志为空时额外给一条通知说明原因(运行已取消 / 服务端已清理)
否则面板里只有一行标题,看起来像「什么都没发生」。实测你实例上那些镜像仓库的旧运行
基本都属于「日志已被清理」这一类。 - 输出面板改用
完整变更对比:v0.8.3...v0.8.4