GitHub CLIをWindowsとWSL2に入れて、IssueとPRを確認する

私は普段、GitHub CLI(gh)をWSL2のターミナルで使っています。WindowsとWSL2の両方を使う場合に迷いやすいのは、Windowsに入れたghがWSL2でもそのまま使えると思ってしまうことです。どのシェルで作業するかを先に決め、その環境にghを入れて認証します。

WindowsとWSL2は、それぞれにインストールする

PowerShellで使う場合は、Windows TerminalなどでPowerShellを開き、WinGetから入れます。

winget install --id GitHub.cli --source winget

インストール後、Windows Terminalを使っている場合は新しいウィンドウを開き、次でバージョンを確認します。

gh --version

WSL2のUbuntuで使う場合は、WSLのシェルでLinux版を入れます。GitHub CLIの公式APTリポジトリを登録してからghをインストールします。

以下は公式のAPT手順をベースに、鍵の取得をcurlに変えた例です。最初にcurlとCA証明書を準備し、鍵は一時ファイルへ取得してから配置します。Bashで括弧を含めてまとめて実行すると、途中のコマンドが失敗した時点で処理が止まります。

(
  set -euo pipefail

  sudo apt update
  sudo apt install -y curl ca-certificates
  sudo mkdir -p -m 755 /etc/apt/keyrings /etc/apt/sources.list.d

  gh_keyring_file=$(mktemp)
  trap 'rm -f "$gh_keyring_file"' EXIT
  curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg -o "$gh_keyring_file"
  sudo install -m 644 "$gh_keyring_file" /etc/apt/keyrings/githubcli-archive-keyring.gpg

  gh_architecture=$(dpkg --print-architecture)
  printf '%s\n' "deb [arch=$gh_architecture signed-by=/etc/apt/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 -y gh
)

PowerShellとWSLの両方に入れた時は、それぞれのシェルでgh --versionとログイン状態を確かめます。設定ファイルの保存先は通常、Windowsが%APPDATA%\GitHub CLI、Linuxが$HOME/.config/gh。GH_CONFIG_DIRやXDG_CONFIG_HOMEを指定していれば、保存先も変わります。

そのターミナルでGitHubへログインする

PowerShellでもWSLでも、ログインする環境のターミナルで次を実行します。

gh auth login

質問に答えてGitHub.comを選び、案内に沿ってブラウザー認証を完了します。ログイン後は同じターミナルで状態を見ます。

gh auth status

WSLではgh auth statusが通るのに、Codexでは無効と出て、少しつまずいたこともありました。今は使えています。その時の記録は、WSLとCodexでGitHub CLIの表示が食い違った時の話に残しています。

IssueやPull Requestをターミナルから見る

リポジトリの作業ディレクトリで、Issueの一覧とPRの状態を見ます。

gh repo view
gh issue list
gh pr status
gh pr view 123

123はPR番号の例です。ターミナルで読むならこのまま。ブラウザーで開きたい時はgh pr view 123 --web。番号を省くと、今いるブランチのPRが対象になります。

gitはローカルの変更、ブランチ、コミットを扱います。ghはIssueやPull RequestなどGitHub上の情報を扱います。たとえばPRのチェックを待つのはgh pr checks 123 --watch、ローカルのコミットをremoteへ送るのはgit pushです。ghへのログインに成功しても、git pushに必要なSSHキーやHTTPSの認証が自動で整うとは限りません。

私自身はWSLの/usr/bin/ghを使った経験をもとに、同じ環境でGitの作業とGitHub上の確認をするようにしています。Windows側のインストール方法はGitHub CLIの公式手順に沿って記載しました。どちらか一方だけ使うなら、普段Gitを実行するシェルにghを入れるところから始めれば十分です。

確認した公式情報

コメント

タイトルとURLをコピーしました