Skip to content

githup v1.2.10(Actions 运行记录:按工作流筛选 · 跑废的可以删)

Choose a tag to compare

@Buwrt Buwrt released this 26 Sep 08:25

这一版加的是 Actions 页面上一直缺的两件事:按工作流筛选,以及删除运行记录。
功能来自社区 PR #9(mymine 提的),合进来之前补了三处,下面单独说。

版本号只动第三位(1.2.9 → 1.2.10),按 README 的规矩属于可选更新:
装了 v1.2.9 的会收到提示,不更也能继续用。


一、按工作流筛选:一个仓库六个工作流时不用再翻页

以前 Actions 页只有一排状态分段控件(全部 / 成功 / 失败 / 运行中)。仓库里挂着
CI、发布、依赖更新好几个工作流时,想看其中某一个的构建记录,只能在一整页里翻。

现在状态分段下面多了一个「工作流:全部」按钮:

  • 点开列出该仓库的全部工作流(停用的会标出来);
  • 选中后只显示这个工作流的运行记录;
  • 两个筛选同时生效,并且都写进地址 —— ?status=failure&wf=123。

写进地址这件事是有用的:按返回、或者把链接分享给同事,都能回到同一个筛选组合,
而不是「我刚才筛的是哪个来着」。

一个容易踩空的点:/actions/runs 不支持按工作流过滤。得换到
/actions/workflows/{id}/runs 才拿得到数据。这版走的就是后面这条端点 ——
PR 作者这一处判断是对的。

二、删除运行记录:跑废的那条不用留着

网页端早就有的「Delete workflow run」,App 里一直没有。现在两处都能删:

入口 位置
列表 每条运行记录行尾的 ⋮(只有对该仓库有写权限时才显示)→ 删除运行记录 / 在浏览器打开
详情 单条运行详情页右上角菜单 → 删除运行记录(分隔线下面那一条)

删之前有二次确认,按钮是红色的「删除」,并且写明「日志与产物一起删、删了没法恢复」。
删除成功后列表自动刷新。

报错翻成人话,不再对着一句 Forbidden 发呆:

状态码 提示
403 没有权限(需要对该仓库的写权限)
404 运行记录不存在或已被删除
409 该运行正在进行中,先取消再删除

顺带说一个实现上的坑(不写下来的话下一个人还会踩):全局的 data-go 委托跑在
捕获阶段,在冒泡里 stopPropagation() 是拦不住它的 —— 不特殊处理,点行尾的 ⋮
就会顺带跳进详情页。所以这一行按 App 的约定自己绑 onclick 并置 __bound,
让全局委托跳过,由它自己区分「点 ⋮ 开菜单 / 点行进详情」。

三、合并 PR #9 时补的三处

PR 本体的方向没问题,代码质量比一般的 PR 高(上面说的两个坑它都提前判断对了)。
合进来之前补了三处,都属于「功能在,但边界没兜住」:

1. ?status= 收回白名单

PR 把原来「三选一」的收敛改成了原样透传。链接里混进别的值(手敲的、旧版本分享
出去的、别的客户端生成的)会一路直通 GitHub,对方回 422,整页变成一个报错框。
现在认不出的值一律退回「全部」。

2. ?wf= 一并收敛

它会被拼进接口的路径里(/actions/workflows/{wf}/runs),等于让用户控制一段
URL 路径。现在只放行数字 id 和 xxx.yml 文件名,其余退回「全部」。

3. 删除的 promise 链 return 出去

原来 deleteRun() 没有 return,调用方(详情页、行尾菜单)拿不到结果,不知道什么
时候该刷新。现在成功 resolve true、失败 resolve false(失败已经提示过,不再
往外抛)。详情页再补一层「仓库页还没加载好」的判断 —— 不判断的话那种情况下点了
就是毫无反应,看着像卡死。

另外,PR 里夹带了一个误提交的文件:把这次改动的 git diff 整个存成了
githup-actions-filter-delete(206 行),没有合进来。

四、回归

新增 58 项针对性测试,覆盖筛选拼接、取数端点、⋮ 的分流、删除的确认与失败提示。

反证过(改一行代码就说修好了,是没法证明的):

被测的代码 结果
修复后 58 / 58
退回 PR 原样 53 / 58 —— 红的正是上面那三处
只补第一处的「半吊子」 55 / 58

既有回归全绿:tab 栏与返回 47 + 36、仓库页头部 22、Markdown 26 + 29、站内链接 48、
底栏贴底 26、安全区 46。第 3 环(前端资源完整性,21 个文件)21/21 通过。

五、下载与校验

项 值
文件 githup-1.2.10.apk
大小 926,286 字节(约 905 KB)
SHA-256 391ee29c05eac58ebdd9af7d0669e1cbf4b03b16680b9707c5ed6030f25c49cc
versionName / versionCode 1.2.10 / 1002010
最低系统 Android 7.0(API 24)

包内自带两道自校验:签名自校验(证书指纹不符拒绝运行)+ 源码指纹
(对源码文件算整体 SHA-256 内嵌,被改过会报出来)。本次源码指纹 SRC_SHA256:

c017b60205f4a0e61a12e03cfad99f5a68c27b09604b8365809d02659273f8cc

签名证书与之前一致,可直接覆盖安装,不用卸载。