GitHub CLI 命令行工具:3 条命令把一轮 PR 审查搬进终端
【免费下载链接】cliGitHub’s official command line tool项目地址: https://gitcode.com/GitHub_Trending/cli/cli
下午三点,你收到提醒:PR #1401 在等你的审查,CI 有一项红了。GitHub CLI(gh)是 GitHub 官方的命令行工具,把 PR、Issue、Release 这些原本要在浏览器里点好几层菜单的操作,搬到你敲git命令的终端里,少切一次窗口。
🚀 安装与登录:两条命令走通
# macOS 用 Homebrew 安装(Linux/Windows 见 docs/install_linux.md 等说明) brew install gh # 授权 GitHub 账号,会自动拉起浏览器完成 OAuth,一次配置长期有效 gh auth login登录成功后,gh会读取你所在仓库的 remote 自动定位项目,绝大多数命令不用再带--repo参数。
📋 一次 PR 审查:从 5 次点击到 3 条命令
传统流程是:打开浏览器 → 进仓库 → 切到 PR 标签 → 等 CI 图标 → 再回终端看 diff。现在一条gh pr status就能看清你经手的每个 PR 及其检查状态,红绿一目了然。
# 一眼看清所有相关 PR 和 CI 状态 gh pr status # 直接在终端读 diff,配合 less 翻 gh pr diff 1401 # 看完没问题,直接批注并批准 gh pr review 1401 --approve --body "LGTM"🏷️ 一次版本发布:跳过浏览器里的表单
手动发 release 通常要 5 步以上:打包、进 Releases 页、点 New、传文件、粘贴说明。gh release create把上传和写说明合成一步:
# 创建 release,附上产物文件,说明从 CHANGELOG 读取 gh release create v1.8.0 dist/cli-1.8.0.tar.gz --notes-file CHANGELOG.md发完用gh release list确认,资产下载链接可以直接粘给同事。
📥 一次批量 issue 处理
处理 issue 时最烦的是在列表和详情页之间反复跳转。gh的输出自带颜色与状态标识(绿=打开、红=已关、紫=已合并),终端里扫一眼就知道哪些该收掉:
# 列出分配给我的打开 issue gh issue list --assignee @me --state open # 看详情、标签和评论 gh issue view 1353 # 带一句说明关闭,省得回浏览器补 comment gh issue close 1353 --comment "已在 #1401 修复"🔌 接进日常流程:别名、jq、CI
gh对脚本是友好的:列表类命令都支持--json和内置--jq过滤,输出可以整条接进管道。
# 常用过滤条件存成别名,以后敲一个词就行 gh alias set mine "pr list --review-requested @me" # 取打开 PR 的编号列表,交给下游脚本处理 gh pr list --state open --json number --jq '.[].number'在 CI 里同样适用,注入 token 后与本地用法一致:
# CI 作业中合并指定 PR(token 通过环境变量注入) GH_TOKEN=$REPO_TOKEN gh pr merge $PR_NUMBER --squash🔍 架构与扩展方式
项目结构按"每个命令一个模块"切分,入口在 cmd/gh/main.go:
cli/ ├── cmd/gh/main.go # 程序入口 ├── pkg/cmd/ # 各命令实现:pr/、issue/、release/、repo/ 等 ├── internal/ # 配置、遥测、提示等内部工具包 └── api/ # GitHub API 客户端想加新命令时,在 pkg/cmd/ 下新建目录、实现对应的 Cobra 子命令、挂到根命令上即可;与 GitHub 打交道的所有请求都收在 api/ 层,命令层不直接拼 API。
下一步建议:先跑通gh pr status和gh issue list这两条线,把最常用的查看动作从浏览器里挪走,再考虑别名和 CI 自动化。
【免费下载链接】cliGitHub’s official command line tool项目地址: https://gitcode.com/GitHub_Trending/cli/cli
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考