MS_GitHubCLI - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
- 戻る(GitHub)
- GitHub CLI
- GitHub Actions
- GitHub Copilot
- GitHub 資格
- コマンドライン(CLI)上で GitHub の操作を行える公式ツール
- インストールすると、
ghコマンド が使えるようになる。
補足(
gitとの違い):gitが扱うのは
**リポジトリ(コミット、ブランチ、履歴)**だけで、
Issue・Pull Request・Actions・Releases といった
GitHub 側の機能は Web 画面か API でしか触れなかった。
ghはそこを CLI から扱えるようにするツールである。
後述の「結局、Git を使っている」という著者の観察は、
この役割分担を言い当てている。
-
インストール
winget install --id GitHub.cli -
アップグレード
winget upgrade --id GitHub.cli
移行メモ(衍字): アップグレードのコマンド末尾に
余分な|が付いていたため除去した。
-
インストール
brew install gh -
アップグレード
brew upgrade gh
何気に、インストール後、シェル再起動が必要。
gh --version
gh auth login
- 認証コマンドの動きの例(選択によって可変)
? Where do you use GitHub? GitHub.com
? What is your preferred protocol for Git operations on this host? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? 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 https://github.com/login/device in your browser...
✓ Authentication complete.
- gh config set -h github.com git_protocol https
✓ Configured git protocol
✓ Logged in as XXXXXXXXXXXX
- 上記を複数回行って、複数アカウントでログイン可能
補足(このフローは Device Authorization Grant): 「ワンタイム コードを
コピーしてブラウザで入力する」という上記の認証は、
OAuth の Device Authorization Grant(RFC 8628)
そのものである。
CLI のようにブラウザのリダイレクトを受け取れないクライアントのための
標準的な認証方式で、Authenticate Git with your GitHub credentials? Yesを
選ぶと、取得したトークンがgitの資格情報ヘルパーにも設定される。
gh auth status
github.com
✓ Logged in to github.com account XXXXXXXXXXXX (keyring)
- Active account: true
- Git operations protocol: https
- Token: gho_************************************
- Token scopes: 'gist', 'read:org', 'repo', 'workflow'
✓ Logged in to github.com account YYYYYYYYYYYY (keyring)
- Active account: false
- Git operations protocol: https
- Token: gho_************************************
- Token scopes: 'gist', 'read:org', 'repo', 'workflow'
-
基本
gh auth switch -
ユーザ指定
gh auth switch --user XXXXXXXXXXXX
-
基本
gh auth logout -
ユーザ指定
gh auth logout --user XXXXXXXXXXXX
補足(複数アカウントの使い分け): 上の
gh auth statusの出力にある
Active account: true / falseのとおり、
同時にログインできても、有効なのは 1 つだけである。
業務用と個人用のアカウントを行き来する場合は
gh auth switchで切り替える。
トークンは OS の資格情報ストア((keyring)の表示)に保存される。
- エージェントに操作させると何気に結局、Git を使っているケースが多い。
- ただ、このケースでも、git の認証を
ghで行っているので、結果オーライではある。
Issue に新規登録してもらいました。
忘却彼方の Issue を分析更新してもらいました。
ドキュメントを Wiki アップしてもらいました。
移行メモ(記録としての節): 「エージェント連携」の 3 項目は、
著者が LLM コーディング エージェントに実際に作業させた記録である
(具体的な手順は書かれていない)。
元ページの記述をそのまま残す。
補足(
ghの主なコマンド): 上記の用途に対応するghのコマンドは以下。
用途 コマンド Issue の作成・一覧・編集 gh issue create/list/editPull Request の作成・レビュー gh pr create/review/mergeActions の実行状況 gh run list/view/watchリポジトリのクローン・作成 gh repo clone/createAPI を直接叩く gh api <エンドポイント>なお Wiki の編集用サブコマンドは
ghには無いため、
<リポジトリ>.wiki.gitをgitでクローンして編集することになる
(「結局、Git を使っている」の一例)。
-
GitHub CLI | Take GitHub to the command line
https://cli.github.com/ -
Manual | GitHub CLI
https://cli.github.com/manual/ -
cli/cli: GitHub's official command line tool
https://github.com/cli/cli -
GitHub CLI について - GitHubドキュメント
https://docs.github.com/ja/github-cli/github-cli/about-github-cli -
GitHub CLI を導入して Web 画面をポチポチせずに GitHub を使いこなす方法 #GithubCLI - Qiita
https://qiita.com/to3izo/items/c52d3d6ddfe16f4db803
Tags: .NET開発, 構成管理ツール, CI, IaC