GitHub CLI(gh)は、コマンドラインからGitHubの機能を直接操作できる公式ツールです。プルリクエストの作成、イシューの管理、リポジトリの操作などをターミナルから実行できます。
- ブラウザを開かずにGitHubの操作が可能
- 作業フローの自動化
- スクリプトでの利用が容易
- Git操作とGitHub操作をシームレスに統合
# Scoopを使用
scoop install gh
# またはChocolateyを使用
choco install gh# Homebrewを使用
brew install gh# 公式リポジトリを追加
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh例題1:GitHub CLIのバージョンを確認
gh --versionGitHub CLIを使用するには、まずGitHubアカウントで認証する必要があります。
例題2:GitHubアカウントで認証
gh auth login例題3:認証状態を確認
gh auth status例題4:複数のアカウントを管理
# 別のアカウントでログイン
gh auth login --hostname github.com
# アカウントを切り替え
gh auth switch例題5:認証トークンを確認
gh auth token例題6:新しいリポジトリを作成
# パブリックリポジトリを作成
gh repo create my-new-repo --public
# プライベートリポジトリを作成
gh repo create my-private-repo --private
# 説明付きで作成
gh repo create my-project --public --description "私のプロジェクト"例題7:現在のディレクトリをGitHubリポジトリとして公開
# 既存のローカルリポジトリから
gh repo create --source=. --public例題8:リポジトリをクローン
# 自分のリポジトリ
gh repo clone my-repo
# 他のユーザーのリポジトリ
gh repo clone owner/repo例題9:フォークを作成
gh repo fork owner/original-repo例題10:リポジトリの詳細を表示
gh repo view
# 特定のリポジトリ
gh repo view owner/repo
# Webブラウザで開く
gh repo view --web例題11:リポジトリ一覧を表示
# 自分のリポジトリ
gh repo list
# 特定のユーザーのリポジトリ
gh repo list username
# 条件を指定して検索
gh repo list --limit 10 --language javascript例題12:プルリクエストを作成
# インタラクティブに作成
gh pr create
# タイトルと本文を指定
gh pr create --title "新機能追加" --body "ログイン機能を実装しました"
# ドラフトとして作成
gh pr create --draft例題13:テンプレートを使用してPRを作成
gh pr create --template bug_report.md例題14:レビュアーを指定してPRを作成
gh pr create --reviewer username1,username2例題15:プルリクエスト一覧を表示
# 現在のリポジトリのPR
gh pr list
# 自分がアサインされたPR
gh pr list --assignee @me
# 特定の状態のPR
gh pr list --state closed例題16:プルリクエストの詳細を表示
gh pr view 123
# インタラクティブに選択
gh pr view
# Webブラウザで開く
gh pr view 123 --web例題17:プルリクエストの差分を確認
gh pr diff 123例題18:プルリクエストをチェックアウト
gh pr checkout 123例題19:プルリクエストをマージ
# 通常のマージ
gh pr merge 123
# スカッシュマージ
gh pr merge 123 --squash
# リベースマージ
gh pr merge 123 --rebase例題20:プルリクエストを閉じる
gh pr close 123例題21:プルリクエストにコメント
gh pr comment 123 --body "LGTMです!"例題22:新しいイシューを作成
# インタラクティブに作成
gh issue create
# タイトルと本文を指定
gh issue create --title "バグ報告" --body "ログイン時にエラーが発生します"
# ラベルを付けて作成
gh issue create --label bug,urgent例題23:テンプレートを使用してイシューを作成
gh issue create --template bug_report.md例題24:イシュー一覧を表示
# すべてのイシュー
gh issue list
# 特定のラベルのイシュー
gh issue list --label bug
# 自分がアサインされたイシュー
gh issue list --assignee @me例題25:イシューの詳細を表示
gh issue view 45
# コメントも含めて表示
gh issue view 45 --comments例題26:イシューを閉じる
gh issue close 45例題27:イシューを再開する
gh issue reopen 45例題28:イシューにコメント
gh issue comment 45 --body "この問題を調査中です"例題29:イシューを編集
gh issue edit 45 --title "新しいタイトル" --add-label priority-high例題30:ワークフロー一覧を表示
gh workflow list例題31:ワークフローの実行履歴を確認
gh run list
# 特定のワークフロー
gh run list --workflow=ci.yml例題32:ワークフローを手動実行
gh workflow run ci.yml例題33:実行中のワークフローを確認
gh run watch例題34:新しいリリースを作成
gh release create v1.0.0 --title "Version 1.0.0" --notes "初回リリース"例題35:リリースノートを自動生成
gh release create v1.1.0 --generate-notes例題36:アセットを含むリリースを作成
gh release create v1.2.0 ./dist/app.zip --title "Version 1.2.0"例題37:リリース一覧を表示
gh release list例題38:Gistを作成
# ファイルからGistを作成
gh gist create script.sh
# 複数ファイルのGist
gh gist create file1.txt file2.txt --public例題39:Gist一覧を表示
gh gist list例題40:カスタムエイリアスを作成
# プルリクエストの状態を素早く確認
gh alias set prs 'pr list --assignee @me'
# よく使うリポジトリに移動
gh alias set myrepo 'repo view username/myrepo --web'例題41:エイリアス一覧を表示
gh alias list例題42:GitHub APIを直接呼び出す
# ユーザー情報を取得
gh api user
# リポジトリ情報を取得
gh api repos/owner/repo
# GraphQLクエリ
gh api graphql -f query='
query {
viewer {
login
name
}
}
'GitHub CLIを使って新しいプライベートリポジトリ「gh-practice」を作成し、READMEファイルを追加してください。
作成したリポジトリに新しいイシューを作成してください。タイトルは「初めてのイシュー」、ラベルは「enhancement」を付けてください。
新しいブランチ「feature-test」を作成し、変更を加えた後、GitHub CLIを使ってプルリクエストを作成してください。
プルリクエストに自分でコメントを追加し、その後マージしてください。
GitHub CLIを使って、自分のリポジトリ一覧を表示し、最新の5つだけを表示してください。
# リポジトリを作成
gh repo create gh-practice --private --description "GitHub CLI練習用"
# クローン
gh repo clone gh-practice
cd gh-practice
# READMEを追加
echo "# GitHub CLI Practice" > README.md
git add README.md
git commit -m "Add README"
git push origin maingh issue create \
--title "初めてのイシュー" \
--body "GitHub CLIから作成したイシューです" \
--label enhancement# ブランチを作成
git checkout -b feature-test
# 変更を加える
echo "テスト機能" > test.txt
git add test.txt
git commit -m "テスト機能を追加"
git push origin feature-test
# プルリクエストを作成
gh pr create \
--title "テスト機能の追加" \
--body "新しいテスト機能を実装しました"# PRにコメント
gh pr comment --body "実装を確認しました。問題ありません。"
# マージ
gh pr merge --mergegh repo list --limit 5この章では、GitHub CLIの基本的な使い方から高度な機能まで学習しました。GitHub CLIを使うことで、ターミナルから離れることなくGitHubの機能を活用でき、作業効率が大幅に向上します。
特に以下の場面でGitHub CLIは威力を発揮します:
- 頻繁にプルリクエストを作成する開発フロー
- イシューの管理が多いプロジェクト
- CI/CDとの連携
- スクリプトによる自動化
GitHub CLIとGitコマンドを組み合わせることで、より効率的な開発ワークフローを構築できます。