用途:通过 gh CLI 操作 GitHub,提供约三十个类型化函数覆盖高频场景,另有两个通用出口。
主要能力:PR 相关有 list、view、create、edit、merge、comment、review、diff、checks;Issue 有 list、view、create、edit、comment、close;仓库有 view、list;Actions 运行有 list、view、rerun、cancel;工作流有 list、run(workflow_dispatch);Release 有 list、view、create;搜索有 repos、issues、prs、code。github::exec 以 { args, stdin?, timeout_ms? } 原样执行任意 gh 命令并返回 stdout、stderr、exit_code、timed_out 及截断标志;github::api 以 { path, method?, fields?, body?, jq?, paginate?, timeout_ms? } 访问任意 REST 端点并返回解析后的 JSON。
使用方式:认证来自 worker 的 GH_TOKEN 配置或宿主环境已有的 gh auth login 状态。没有本地检出,所有仓库级调用都需显式传入 repo: "owner/name"。搜索限定符(如 repo:o/r is:open)写在查询字符串中。
限制:需要 worker 主机上安装 gh CLI,缺失时调用报 gh_not_found(函数仍会注册)。变更类操作(创建/编辑/合并/评论/审查/关闭/重跑/取消/触发工作流/创建 Release)及两个通用出口默认需审批,只读操作允许。类型化函数在 gh 非零退出时报错(消息含 stderr),github::exec 则把 exit_code/stderr/timed_out 作为数据返回。输出按流限制(默认 1 MiB)并带 *_truncated 标志;timeout_ms 受 max_timeout_ms 约束(默认 120 秒,省略时为 30 秒)。github::api 路径需具体 owner/repo 值,不支持 {owner}/{repo} 占位符。