如何批量删除 Github Actions Workflows 的执行记录

文章目录

目前 Github Actions 中的 workflows 执行记录在页面上没有提供批量删除的功能,只能单个点击鼠标操作删除。

如果有很多的记录需要清理,目前只能通过调用 github 的 api 进行删除,具体方法如下:

准备工作

我这里直接在命令行中使用 shell 脚本进行处理,用到的工具有 jqgh,这两个工具不是系统自带的,需要自行安装。

例如,在 macOS 上安装:

brew install jq
brew install gh

其他系统可参考官方文档。

jq 是一个轻量级且灵活的命令行 JSON 处理器,类似于 sed、awk、grep 及其它用于 JSON 数据的工具。它是用便携式 C 语言编写的,没有运行时依赖,使您能够轻松地切割、过滤、映射和转换结构化数据。

gh,或者称为 GitHub CLI,是 Github 官方的命令行工具,用于在终端或脚本中使用 GitHub。

执行删除

jq 和 gh 都有了,就可以开始一键清除 workflows 执行记录了。执行以下命令:

1. 环境变量设置你的 github 信息

export OWNER="用户名"
export REPOSITORY="仓库名"

2. 登录 github

gh auth login

3. 调用 api 删除 workflows 记录

gh api -X GET "/repos/$OWNER/$REPOSITORY/actions/runs?per_page=300" | jq '.workflow_runs[] | .id' | xargs -I{} sh -c 'echo {} && gh api --silent -X DELETE /repos/$OWNER/$REPOSITORY/actions/runs/{}'

执行时会输出被删除记录的 ID,这个方式存在一个问题是它不一定每次都能删干净,如果没有删干净可以多执行几次就行。

执行以下命令可以查询剩余的 workflows 记录:

gh api -X GET "/repos/$OWNER/$REPOSITORY/actions/runs?per_page=300" | jq '.workflow_runs[] | .id' | xargs -I{} echo {}
 github

也可以看看


全国大流量卡免费领

19元月租ㆍ超值优惠ㆍ长期套餐ㆍ免费包邮ㆍ官方正品