Skip to content

v0.8.4

Choose a tag to compare

@github-actions github-actions released this 18 Sep 05:04

修复

  • 「工作流定义」一栏永远是空的,而「最近运行」里明明有记录。

    根因在 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