跳转到主要内容

监视GitHub操作运行

项目描述

此包提供了一个命令,watch_gha_runs。它显示您当前分支上最新GitHub操作运行的状态。如果其中任何运行正在进行,它将重复刷新显示最新状态。

如果愿意,该名称可以读作,“观看?哈哈!”

安装

我建议使用pipx进行安装

$ pipx install watchgha

现在您有一个可用的命令 watch_gha_runs。它将检查当前目录的repo的所有GitHub远程,并找到当前分支的操作运行。

对于复杂的默认设置,您可以使用一个git别名。例如,这提供了类似的默认设置,但可以进行修改

[alias]
    runs = "!f() { \
        watch_gha_runs $@ \
            \"$(git remote get-url origin)\" \
            \"$(git rev-parse --abbrev-ref HEAD)\"; \
    }; f"

现在 git runs 将显示您分支上当前运行的实时显示。

如果需要,您可以使用您的 .netrc 文件中的条目或通过设置环境变量 GITHUB_TOKEN 来对GitHub进行身份验证。

对于公共仓库,不需要身份验证。对于私有仓库,OAuth或经典令牌需要 repo 范围,而细粒度令牌需要“操作(读取)”仓库权限。

如果您使用GitHub Enterprise,可以将环境变量 GITHUB_SERVER_URL(默认:https://github.com)和 GITHUB_API_URL(默认:https://api.github.com)设置为与您的实例匹配。

使用方法

$ watch_gha_runs --help
Usage: watch_gha_runs [OPTIONS] [REPO] [BRANCH]

  Watch GitHub Action runs.

  Repeatedly gets the latest status and redraws the screen, until all
  of the jobs are complete.

  REPO is a local directory or GitHub URL, defaulting to ".".

  BRANCH is defaulted from the git repo.

Options:
  --sha TEXT        The commit SHA to use. Must be a full SHA.
  --poll INTEGER    How many seconds between refreshes.  [default: 15]
  --wait-for-start  Wait for jobs to start.
  --only TEXT       Words to limit the workflows shown. Only workflows
                    with these comma separated case insensitive
                    substrings in their names will be shown.
  --help            Show this message and exit.

显示

输出显示运行和作业。每个作业的当前步骤都会显示,并通过一行点号表示步骤数量,以及当前步骤是哪一个

https://raw.githubusercontent.com/nedbat/watchgha/main/watch.gif
fix: recent pypy3.9 now omits lines after jumps nedbat/fix-pypy-nightly    53923268e8f9  @08:32am
⏲ queued       Tests             view 4397455341
    3.7 on ubuntu                  ↻ •••••••• Run tox for 3.7
    3.8 on ubuntu                  ↻ •••••••• Run tox for 3.8
    3.9 on ubuntu                  ↻ •••••••• Run tox for 3.9
    3.10 on ubuntu                 ↻ •••••••• Run tox for 3.10
    3.11 on ubuntu                 ↻ •••••••• Run tox for 3.11
    pypy-3.7 on ubuntu             ↻ •••••••• Run tox for pypy-3.7
    pypy-3.9 on ubuntu             ↻ •••••••• Run tox for pypy-3.9
    3.7 on macos                   ↻ •••••••• Run tox for 3.7
    3.8 on macos                   ↻ •••••••• Run tox for 3.8
    3.9 on macos                   ⏲ queued
    3.10 on macos                  ↻ •••••••• Run tox for 3.10
    3.11 on macos                  ↻ •••••••• Run tox for 3.11
    pypy-3.7 on macos              ⏲ queued
    pypy-3.9 on macos              ⏲ queued
    3.7 on windows                 ⏲ queued
    3.8 on windows                 ⏲ queued
    3.9 on windows                 ⏲ queued
    3.10 on windows                ↻ ••••••• Check out the repo
    3.11 on windows                ⏲ queued
    pypy-3.7 on windows            ⏲ queued
↻ in_progress  Quality            view 4397455342
    Check types                    ✓ success
    Build docs                     ↻ ••••••• Tox doc
    Pylint etc                     ↻ ••••••• Tox lint
↻ in_progress  Python Nightly Tests   view 4397455346
    Python 3.10-dev                ↻ •••◦•••• Run tox
    Python 3.11-dev                ↻ •••◦•••• Run tox
    Python 3.12-dev                ↻ •••◦•••• Run tox
    Python pypy-3.7-nightly        ↻ ••◦•••••• Run tox
    Python pypy-3.8-nightly        ↻ ••◦•••••• Run tox
    Python pypy-3.9-nightly        ↻ ••◦•••••• Run tox

一旦所有子作业都成功,作业和运行将折叠

fix: recent pypy3.9 now omits lines after jumps nedbat/fix-pypy-nightly    53923268e8f9  @08:32am
✓ success      Tests              view 4397455341
↻ in_progress  Quality            view 4397455342
    Check types                    ✓ success
    Build docs                     ↻ ••••••• Tox doc
    Pylint etc                     ✓ success
✗ failure      Python Nightly Tests   view 4397455346
    Python 3.10-dev                ✓ success
    Python 3.11-dev                ✓ success
    Python 3.12-dev                ✓ success
    Python pypy-3.7-nightly        ✓ success
    Python pypy-3.8-nightly        ✓ success
    Python pypy-3.9-nightly        ✗ failure Run tox

一旦所有运行完成,命令结束,显示最终状态

fix: recent pypy3.9 now omits lines after jumps nedbat/fix-pypy-nightly [push]   53923268e8f9  @08:32am
✓ success      Tests              view 4397455341
✓ success      Quality            view 4397455342
✗ failure      Python Nightly Tests   view 4397455346
    Python 3.10-dev                ✓ success
    Python 3.11-dev                ✓ success
    Python 3.12-dev                ✓ success
    Python pypy-3.7-nightly        ✓ success
    Python pypy-3.8-nightly        ✓ success
    Python pypy-3.9-nightly        ✗ failure Run tox

变更日志

2.3.2 – 2024-06-23

  • GITHUB_SERVER_URL 类似于 “git@git.mydomain.com” 现在已正确解析,关闭 问题 22

  • 为等待状态的作业添加了停止标志表情符号。

  • 大多数致命错误现在会导致状态码为 1。之前错误地是 2。

2.3.1 – 2024-05-25

  • 具有许多作业的工作流程可能会被截断。仍然有一个 100 作业的限制,但比之前的 30 个作业限制要好。

2.3.0 – 2024-04-10

  • 通过 GITHUB_SERVER_URLGITHUB_API_URL 环境变量支持 GitHub Enterprise。感谢,Colin Marquardt

  • 修复:在不寻常的情况下,GitHub 可以返回对作业步骤的奇怪状态。现在这些状态以问号显示。

2.2.2 – 2024-02-03

  • 修复:步骤可以处于“挂起”状态,现在以点号代替“挂起”显示。

2.2.1 – 2024-01-14

  • 修复:如果找不到 .netrc 文件,则不会失败。修复 问题 18

  • 修复:在重复远程的奇怪情况下,不要两次列出工作流程运行。修复 问题 19

2.2.0 — 2024-01-11

  • 现在检查所有 GitHub 远程作业。之前只检查一个,因此看不到上游分支上运行的作业。

  • 添加了 --only 选项,以限制显示的工作流程,如 问题 17 所请求。

  • 现在当终端窗口大小改变时(在 Mac 或 Linux 上),立即重新绘制输出。感谢,Bill Mill

2.1.1 — 2023-07-05

  • 隐式 .netrc 认证停止工作,但现在已修复。感谢,Rob Weir

2.0.0 — 2023-07-02

  • 默认轮询间隔现在是 15 秒。

  • 现在从当前的 git 仓库默认 GitHub 仓库位置和分支名称。仓库位置可以是本地目录或 GitHub URL。关闭 问题 7

  • 新选项 --wait-for-start 将使 watch_gha_runs 等待作业开始。这修复了使用 watch_gha_runs 程序化的问题:它可以在任何新运行开始之前检查运行状态,然后简单地报告最后一组运行的完成状态,然后退出。

  • 修复:如果无法解析 .yml 工作流程文件,则其“运行”会持续显示在运行列表中,时间过长。现在这些不可解析的运行根本不会显示。

  • 修复:跳过的运行被视为已完成,不需要显示其作业。

  • 错误报告得到改进,在某些情况下移除了不需要的嘈杂跟踪,并为 GitHub API 错误提供了更多信息。关闭 问题 8

  • 在失败时尝试更多操作,修复 问题 10

  • 使用 Ctrl-C 中断将设置退出状态为 2。

1.0.0 — 2023-04-15

  • 选项 --poll 设置刷新之间的秒数。

  • 现在对 GitHub 的请求是异步进行的,加快了执行速度。

  • GitHub 的重定向(例如,如果仓库已重命名或移动)将透明地跟随。

  • 如果任何运行失败,退出码现在是 1,如果所有运行都成功,则是 0。

  • 长行不再被截得太短。

0.6.0 — 2023-03-22

  • 可以通过在命令行中使用 --sha 通过提交 SHA 选择运行。

  • 如果 GitHub 返回“502 - Bad Gateway”,请重试。

0.5.0 — 2023-03-15

  • 如果已定义,使用环境变量 GITHUB_TOKEN 进行身份验证。

0.0.2 — 2023-03-14

  • 支持更多形式的仓库 URL:例如 git@github.com:,不带 .git 等。

  • 如果无法解析仓库 URL,将提供更好的错误信息。

0.0.1 — 2023-03-13

第一个版本

开发中

代码有些混乱且没有文档,也没有测试。如果你想更改代码,请打开一个问题并讨论。

贡献者

  • Ned Batchelder

  • Bill Mill

  • Hugo van Kemenade

  • Rob Weir

背景故事

这最初是为 gh run 命令 的输出 gh run list 创建的一个格式化器。然后我尝试了 gh run watch,但对其选择不满意。所以我写了自己的。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源代码分布

watchgha-2.3.2.tar.gz (385.5 kB 查看哈希值)

上传时间 源代码

构建分布

watchgha-2.3.2-py3-none-any.whl (18.9 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面