简介
gh 是由 GitHub 官方用 Go 开发的客户端工具,用于在命令行界面与 GitHub 进行交互,适合希望在命令行高效管理 GitHub 资源的开发者。
GitHub 是一个开发者平台,开发者能在平台上存储、托管和共享代码,主要被用于托管开源软件开发项目,是世界上最大的源代码托管商。它支持使用 git 命令访问和管理平台上的项目仓库,能为用户的每个项目仓库提供访问控制、错误跟踪、软件功能请求、任务管理、持续集成和 wiki 的分布式版本控制,
info 注意
由于 x-cmd 提供了同名模块,因此使用官方 gh 命令,只能以如下方式使用x env use gh命令安装 gh 模块,而不能直接x gh。
快速上手
安装
eval "$(curl https://get.x-cmd.com)" # 安装 x-cmd
x env use gh # 使用 x-cmd 安装 gh
使用
-
使用 GitHub 认证登录 gh:
# 打开浏览器认证登录 gh auth login -w # 使用 GitHub token 认证登录(token 获取地址:https://github.com/settings/tokens) gh auth login --with-token < gh_token.txt # 验证是否登录成功 gh auth status -
管理 GitHub 上的仓库:
# 列出当前用户拥有的仓库 gh repo list # 查看指定的仓库信息,如查看 github.com/x-cmd/x-cmd 仓库 gh repo view x-cmd/x-cmd # 将 x-cmd/x-cmd 仓库的代码同步到当前账户的分支仓库 gh repo sync <username>/x-cmd --source x-cmd/x-cmd # 克隆 Github 上的仓库到本地 gh repo clone x-cmd/x-cmd -- --depth=1
功能特点
- 涵盖了 GitHub 核心功能:提供仓库、Issue、PR、Actions、release 等 GitHub 核心管理功能。
- 支持多种认证方式:支持 OAuth、GitHub App 和个人访问令牌(PAT)等多种认证方式,确保安全访问。
- 插件体系:支持使用第三方或者自定义的 gh 扩展,以添加额外功能或集成其他工具。
与 x-cmd gh 模块的关系
x gh 是由 x-cmd 团队基于 GitHub API 使用 Shell 与 AWK 封装的 GitHub CLI 模块,而 GitHub 官方的 gh 是用 Go 实现的,运行高效,且拥有插件体系,功能丰富。
一般来说,同名模块都是对同名软件的二次封装,而 gh 模块则是少有的与同名软件完全没有依赖关系的模块,所以用户若想使用 gh 软件,只能使用 x env use 命令安装,而不能使用 x gh 这种模式调用。
相较而言,gh 模块:
- 采用 sh/awk/curl 实现,实现更为轻便,这是我们实现
gh模块的初衷。 - 因为作为 x-cmd 的模块发布,无需额外安装,开箱即用。
- 目前已涵盖官方
gh命令的管理功能,在参数设计提供更多的选项。 - 一致化体验:为了符合 x-cmd cli 的设计哲学,进而保持与其它 cli 的一致性。但也因此导致与官方 gh 命令的设计略有不同。
- 使用 x-cmd 的 tui 体系,提供与其它 x-cmd 模块一致且友好易用的命令行交互界面
相关项目
gh-dash:一款用 Go 开发的gh扩展插件,能提供美观的终端图形界面操作仪表台。
进一步探索
- gh 源代码 - gh 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 gh 和参与社区贡献。
- gh 官方文档 - GitHub 官方提供的 man 文档
- wiki: GitHub - GitHub 维基百科
- GitHub CLI extension -
gh扩展插件列表
更多内容请查阅 : pkg/gh
转载请标明原文链接 :www.x-cmd.com/pkg/gh
关注微信官方公众号 : oh my x
获取开源软件和 x-cmd 最新用法