GitHub CLI documentation ノート¶
GitHub CLI documentation を見ていく。ブラウザーとコンソールを往復するのが億劫な人に最適な道具だ。
Overview → About GitHub CLI
Quickstart → GitHub CLI
Reference → GitHub CLI reference
About GitHub CLI¶
GitHub CLI is an open source tool for using GitHub from your computer’s command line.
コンソールから GitHub の操作各種を実行可能。開発環境とブラウザーを往復するのを省けるから効率向上が期待できる。
View, create, clone, and fork repositories
Create, close, edit, and view issues and pull requests
Review, diff, and merge pull requests
Run, view, and list workflows
Create, list, view, and delete releases
Create, edit, list, view, and delete gists
List, create, delete, and connect to a codespace
Retrieve information from the GitHub API
素の git とどう違うのか:
GitHub CLI (gh) is specifically for working with GitHub. It allows you to use the command line to interact with GitHub in all sorts of ways, as illustrated by the previous list.
GitHub の自動化に利用したい。
導入および更新は conda で行う:
bash$ conda install gh --channel conda-forge
bash$ conda update gh --channel conda-forge
エラーが出たら --channel conda-forge
を省いて様子を見たい。
GitHub CLI quickstart¶
Authenticate with GitHub by running this command from your terminal.
コマンド gh auth login
を最初の一度だけ実行するようだが、その結果:
GitHub CLI automatically stores your Git credentials for you when you choose HTTPS as your preferred protocol for Git operations and answer “yes” to the prompt asking if you would like to authenticate to Git with your GitHub credentials.
となる。これを検証するには gh auth status
を実行すればいいようだ:
bash$ gh auth status
github.com
✓ Logged in to github.com as showa-yojyo (/home/USERNAME/.config/gh/hosts.yml)
✓ Git operations for github.com configured to use ssh protocol.
✓ Token: gho_************************************
✓ Token scopes: admin:public_key, gist, read:org, repo
便利コマンド集:
コマンド |
挙動 |
---|---|
|
現在の自分の作業状況を示す |
|
リポジトリーの記述と README を示す |
|
リポジトリーをローカルに clone する |
|
リポジトリーを対話的に作成する |
|
リポジトリーの最近の issues を示す |
|
リポジトリーの最近の pull requests を示す |
|
ラベルを指定して最近の pull requests を示す |
|
Codespace を対話的に作成する |
|
Codespaces 一覧を示す |
読者ノート
Codespaces に関するコマンドは 403 エラーが生じる。コマンド gh auth refresh
-h github.com -s codespace
を実行するように促されるが?
Enter gh
for a reminder of the top-level GitHub CLI commands that you can
use.
ヘルプは他のコマンドと同様に:
For each command, and each subsidiary subcommand, you can append the
--help
flag to find out how it’s used.
カスタマイズ:
You can change configuration settings and add aliases or extensions, to make GitHub CLI work the way that suits you best.
おそらく Git に影響を受けた設計になっている。
Enter
gh config set SUBCOMMANDS
to configure GitHub CLI’s settings, replacingSUBCOMMANDS
with the setting you want to adjust.
これは gh config --help
と gh config set --help
を確認してから使う。
Define aliases for commands that you commonly run.
これはわかりやすい。しかし使わない。
Create or add custom commands with GitHub CLI extensions.
これも Git に同等の機能があるから理解可能。しかし使わない。
読者ノート
gh の設定ファイルは既定では $XDG_CONFIG_HOME/gh
以下に配置される。このディレクトリーの意味については XDG Base Directory 利用ノート 参照。
Creating GitHub CLI extensions¶
カスタムコマンドを作る。
You need a repository for each extension that you create. The repository name must start with
gh-
. The rest of the repository name is the name of the extension.
リポジトリーの存在をカスタムコマンド作成の前提とする。
Note: Running
gh extension create
with no arguments will start an interactive wizard.
拡張コマンド名を指示して作成開始する方法:
bash$ gh extension create EXTENSION-NAME
対話的に処理する。
You can use the
--precompiled=go
argument to create a Go-based project for your extension, including Go scaffolding, workflow scaffolding, and starter code.
これは個人的には利用しないか。
Go 以外のプログラミング言語でコードを書く場合:
You can use the
--precompiled=other
argument to create a project for your non-Go precompiled extension, including workflow scaffolding.
スクリプト型実行可能ファイルでもカスタムコマンドを定義可能。スクリプトを作り
gh extension install .
を実行する。皆に利用させるためにはさらに:
bash$ git init -b main
bash$ git add . && git commit -m "initial commit"
bash$ gh repo create gh-EXTENSION-NAME --source=. --public --push
Some GitHub CLI core commands will prompt the user for input. When scripting with those commands, a prompt is often undesirable.
コマンドライン引数をきっちり実装する。
Many core commands support the
--json
flag for fetching data programatically.
JSON で出力して何かに食わせやすくする。
If there is not a core command to fetch specific data from GitHub, you can use the gh api command to access the GitHub API.
コマンド gh api user
などを実行すればわかるが、JSON で何かが出力される。
Twitter API でデータ処理をするのとひじょうに似ている。
Go 言語周りのトピックがもう一つあるが割愛。
Using GitHub CLI extensions¶
反対に、他人が作ったカスタムコマンドを利用する。どこの馬の骨が作ったコマンドとも限らないので:
To mitigate risk when using third-party extensions, audit the source code of the extension before installing or updating the extension.
カスタムコマンドの顕著な特徴:
Extensions are locally installed and are scoped to the user. Therefore, if you access GitHub CLI from a different machine or another user accesses GitHub CLI from the same machine, the extension will not be available.
インストール方法:
bash$ gh extension install REPO
To install an extension, use the
extensions install
subcommand. Replace therepo
parameter with the repository of the extension. You can use the full URL, such ashttps://github.com/octocat/gh-whoami
, or just the owner and repository, such asoctocat/gh-whoami
.
開発版は事情が異なる:
To install an extension in development from the current directory, use
.
as the value for therepo
parameter.
上書きインストールを試みるとエラーになる。直前に明示的にアンインストールすることだ。
To view all installed extensions, use the
extensions list
subcommand.
カスタムコマンドを更新する方法はある:
bash$ gh extension upgrade EXTENSION
bash$ gh extension upgrade --all
To uninstall an extension, use the
extensions remove
subcommand.
GitHub CLI reference¶
頭に叩き込む必要があるコマンド:
コマンド |
挙動 |
---|---|
|
最上位コマンドすべてを示す |
|
|
|
|
|
設定可能な GitHub CLI 項目を示す |
|
コマンド |
ブラウザーでまとめて情報を得るには次のマニュアルページを参照する: GitHub CLI | Take GitHub to the command line