🐙
MacでGitHub CLIをセットアップする
GitHub CLIとは
GitHubをターミナルやスクリプトから操作するためのCLIです。色々できます。
Core commands
コマンド | 説明 |
---|---|
gh auth | GitHubでghとgitを認証する |
gh browse | WebブラウザでGitHubリポジトリを開く |
gh codespace | Codespaceに接続して管理する |
gh gist | gistsを操作する |
gh issue | イシューを操作する |
gh pr | PRを操作する |
gh release | リリースを管理する |
gh repo | リポジトリを操作する |
Actions commands
コマンド | 説明 |
---|---|
gh run | GitHub Actionsから実行された最近のワークフローを一覧表示、表示、および監視する |
gh workflow | GitHub Actionsでワークフローを一覧表示、表示、実行する |
Additional commands
コマンド | 説明 |
---|---|
gh alias | エイリアスを使用して、ghコマンドのショートカットを作成したり、複数のコマンドを作成したり |
gh api | GitHub APIに対して認証済みのHTTPリクエストを作成し、レスポンスを出力する |
gh completion | GitHubCLIコマンドのshell completion scriptsを生成する |
gh config | ghの構成設定を表示または変更する |
gh extension | 拡張機能を追加する |
gh gpg-key | GitHubアカウントに登録されているGPGキーを管理する |
gh label | ラベルを操作する |
gh search | GitHub全体を検索する |
gh secret | secretをリポジトリまたは組織レベルで設定する |
gh ssh-key | GitHubアカウントに登録されているSSHキーを管理する |
gh status | サブスクライブしているすべてのリポジトリにわたって、GitHubでの作業に関する情報を出力する |
検証環境
- M1 MBP@12.4
- gh@2.12.1 (GitHub CLI)
インストール
Homebrew、MacPorts、Conda、Spackを経由してインストールできます。またreleases pageからバイナリをダウンロードすることが可能です。今回はHomebrewでインストールします。
$ brew install gh
構成
CLIの認証を行います。以下のコマンドを実行します。
$ gh auth login
いくつか質問されるので回答していきます。
? What account do you want to log into? [Use arrows to move, type to filter]
> GitHub.com
GitHub Enterprise Server
? What is your preferred protocol for Git operations? [Use arrows to move, type to filter]
> HTTPS
SSH
? Authenticate Git with your GitHub credentials? (Y/n) Y
? How would you like to authenticate GitHub CLI? [Use arrows to move, type to filter]
> Login with a web browser
Paste an authentication token
? How would you like to authenticate GitHub CLI? Login with a web browser
! First copy your one-time code: XXXX-XXXX
Press Enter to open github.com in your browser...
Enterを押すとブラウザでGitHubのDevice Activationページが表示されます。提示されたone-time code(XXXX-XXXX
の部分)をDevice Activationページのフォームに入力してContinueをクリックします。
CLIが要求するアクセス権限のリストが表示されます。問題なければAuthorize gitHubをクリックします。
認証が完了しました。ターミナルに完了メッセージが表示されます。
Press Enter to open github.com in your browser...
✓ Authentication complete.
- gh config set -h github.com git_protocol https
✓ Configured git protocol
✓ Logged in as krabben16
動作確認
以下の条件でリポジトリの一覧を取得してJSONに整形してみます。
- リポジトリ内で最も使われている言語がTypeScript
JSONに出力するフィールドを指定します。
- リポジトリ名 (
name
) - リポジトリ内で最も使われている言語 (
primaryLanguage
) - リポジトリ内で使われている全ての言語とそのサイズ (
languages
) - 所有者 (
owner
) - 作成日時 (
createdAt
) - 更新日時 (
updatedAt
)
$ gh repo list --language typescript --json name,primaryLanguage,languages,owner,createdAt,updatedAt
[
{
"createdAt": "2022-06-03T14:21:00Z",
"languages": [
{
"size": 1110,
"node": {
"name": "JavaScript"
}
},
{
"size": 1271,
"node": {
"name": "TypeScript"
}
}
],
"name": "sandbox-cdk-ts",
"owner": {
"id": "MDQ6VXNlcjU3NTM0Mzc0",
"login": "krabben16"
},
"primaryLanguage": {
"name": "TypeScript"
},
"updatedAt": "2022-06-11T16:40:44Z"
},
取得できました👏
Discussion