cli/cli
GitHub: cli/cli
GitHub 官方推出的命令行工具,让你在终端中高效管理 PR、Issue、Release 等 GitHub 操作,告别浏览器切换的繁琐。
Stars: 42844 | Forks: 8004
# GitHub CLI
`gh` 是命令行上的 GitHub。它将 pull request、issue 以及其他 GitHub 概念带到终端中,让你在已经使用 `git` 和代码的地方旁边进行操作。

GitHub CLI 支持 GitHub.com、GitHub Enterprise Cloud 和 GitHub Enterprise Server 2.20+ 的用户,并支持 macOS、Windows 和 Linux。
## 文档
安装选项请[参阅下文](#installation),使用说明请[参阅手册]( https://cli.github.com/manual/)。
## 安装
### [macOS](docs/install_macos.md)
- [Homebrew](docs/install_macos.md#homebrew)
- [releases 页面][] 上的[预编译二进制文件](docs/install_macos.md#precompiled-binaries)
如需更多 macOS 软件包和安装程序,请参阅[社区支持文档](docs/install_macos.md#community-unofficial)
### [Linux & Unix](docs/install_linux.md)
- [Debian, Raspberry Pi, Ubuntu](docs/install_linux.md#debian)
- [Amazon Linux, CentOS, Fedora, openSUSE, RHEL, SUSE](docs/install_linux.md#rpm)
- [releases 页面][] 上的[预编译二进制文件](docs/install_linux.md#precompiled-binaries)
如需更多 Linux & Unix 软件包和安装程序,请参阅[社区支持文档](docs/install_linux.md#community-unofficial)
### [Windows](docs/install_windows.md)
- [WinGet](docs/install_windows.md#winget)
- [releases 页面][] 上的[预编译二进制文件](docs/install_windows.md#precompiled-binaries)
如需更多 Windows 软件包和安装程序,请参阅[社区支持文档](docs/install_windows.md#community-unofficial)
### 从源码构建
关于如何[从源码构建 GitHub CLI](docs/install_source.md),请参阅此处。
### GitHub Codespaces
要将 GitHub CLI 添加到你的 codespace 中,请将以下内容添加到你的 [devcontainer 文件](https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/adding-features-to-a-devcontainer-file):
```
"features": {
"ghcr.io/devcontainers/features/github-cli:1": {}
}
```
### GitHub Actions
[GitHub 托管的运行器](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners) 预装了 GitHub CLI,并每周进行更新。
如果需要特定版本,你的 GitHub Actions 工作流需要根据上方的 [macOS](#macos)、[Linux & Unix](#linux--unix) 或 [Windows](#windows) 说明进行安装。
有关所有预装工具的信息,请参阅 [`actions/runner-images`](https://github.com/actions/runner-images)
### 二进制文件验证
从 2.50.0 版本开始,`gh` 开始生成 [Build Provenance Attestation](https://github.blog/changelog/2024-06-25-artifact-attestations-is-generally-available/),从而能够提供可追溯至源 GitHub 仓库、git 修订版本和所用构建指令的加密可验证记录。构建来源证明经过签名,并依赖于公共益 [Sigstore](https://www.sigstore.dev/) 进行 PKI。
验证下载的 release 有两种常用方法,具体取决于是否已安装 `gh`。如果已安装 `gh`,验证新版本非常简单:
- **选项 1:如果已安装 `gh`,直接使用它:**
$ gh at verify -R cli/cli gh_2.62.0_macOS_arm64.zip
Loaded digest sha256:fdb77f31b8a6dd23c3fd858758d692a45f7fc76383e37d475bdcae038df92afc for file://gh_2.62.0_macOS_arm64.zip
Loaded 1 attestation from GitHub API
✓ Verification succeeded!
sha256:fdb77f31b8a6dd23c3fd858758d692a45f7fc76383e37d475bdcae038df92afc was attested by:
REPO PREDICATE_TYPE WORKFLOW
cli/cli https://slsa.dev/provenance/v1 .github/workflows/deployment.yml@refs/heads/trunk
- **选项 2:使用 Sigstore [`cosign`](https://github.com/sigstore/cosign):**
执行此操作时,请下载该 release 的 [attestation](https://github.com/cli/cli/attestations),并使用 cosign 验证所下载 release 的真实性:
$ cosign verify-blob-attestation --bundle cli-cli-attestation-3120304.sigstore.json \
--new-bundle-format \
--certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
--certificate-identity="https://github.com/cli/cli/.github/workflows/deployment.yml@refs/heads/trunk" \
gh_2.62.0_macOS_arm64.zip
Verified OK
## 与 hub 的比较
多年来,[hub](https://github.com/github/hub) 一直是非官方的 GitHub CLI 工具。`gh` 是一个新项目,通过一种截然不同的设计,帮助我们探索官方 GitHub CLI 工具的样子。虽然这两个工具都将 GitHub 带到了终端,但 `hub` 的行为类似于 `git` 的代理,而 `gh` 是一个独立的工具。请查看我们的[更详细说明](docs/gh-vs-hub.md)以了解更多信息。
标签:API客户端, CLI, EVTX分析, EVTX分析, GauPlus, Git, GitHub API, GitHub Enterprise, Go语言, Issue管理, Pull Request, WiFi技术, 代码审查, 协同开发, 威胁情报, 安全可观测性, 开发者工具, 开源, 开源框架, 持续集成, 数据管道, 日志审计, 版本控制, 生产力工具, 程序破解, 终端, 网络调试, 自动化, 软件工程