按文档执行gh run view无返回,如何查询GitHub Actions运行日志?
问题描述
根据GitHub CLI的gh run view文档,应当可以通过以下命令查询GitHub Actions运行日志:
gh run view --log <run-id>
例如,要获取vitejs/vite仓库中运行实例2796702959的完整日志,执行命令:
gh run view -R vitejs/vite --log 2796702959
但该命令无任何返回结果,开启调试模式也未显示错误输出:
GH_DEBUG=true gh run view -R vitejs/vite --log 2796702959 ⣾* Request at 2022-08-04 19:55:51.795659 -0500 CDT m=+0.012528935 * Request to https://api.github.com/repos/vitejs/vite/actions/runs/2796702959 ⣻* Request took 283.249521ms * Request at 2022-08-04 19:55:52.08233 -0500 CDT m=+0.299195200 * Request to https://api.github.com/repos/vitejs/vite/actions/runs/2796702959/jobs ⣾%
环境:macOS Big Sur,gh v2.11.3,GNU bash v3.2.57
解决方法
指定具体Job ID查询日志
一个GitHub Actions运行实例(Run)可能包含多个任务(Job),gh run view --log本质是拉取单个Job的日志,直接传入Run ID时,旧版本CLI无法自动选择Job导致无输出。先列出该Run下的所有Job:gh run view -R vitejs/vite 2796702959 --jobs找到目标Job的ID后,再执行日志查询:
gh run view -R vitejs/vite --log <job-id>升级GitHub CLI版本
你当前使用的ghv2.11.3是2022年的旧版本,存在多Job场景下日志拉取的逻辑bug。升级到最新版本即可修复该问题:brew upgrade gh升级后重试原命令,新版本会自动处理多Job场景,或提示你选择要查看的Job。
直接通过API拉取日志(备选方案)
如果升级CLI后仍有问题,可通过GitHub API直接请求日志:# 获取Run下所有Job的日志链接 curl -H "Authorization: token YOUR_GITHUB_TOKEN" https://api.github.com/repos/vitejs/vite/actions/runs/2796702959/jobs | jq '.jobs[] | .logs_url' # 下载日志到本地文件 curl -H "Authorization: token YOUR_GITHUB_TOKEN" <logs-url> > job-logs.txt注意:需要生成一个拥有
repo权限的GitHub令牌(在GitHub账号的开发者设置中创建)。
内容的提问来源于stack exchange,提问作者tony19
相关产品推荐
相关产品推荐

