GitHub CLI を使うと、ターミナルからリポジトリ操作や認証確認がしやすくなります。
基本的にはブラウザ認証が楽ですが、環境によっては Personal Access Token(PAT)でログインしたい場面もあります。
今回は、GitHub CLI で PAT を使ってログインする方法をメモしておきます。
まずは通常のログイン方法
GitHub CLI の基本コマンドはこれです。
gh auth login
通常はこのコマンドを実行すると、ブラウザベースの認証フローでログインできます。
GUIが使える環境なら、まずはこの方法を選ぶのが無難です。
PATを使ってログインする方法
PAT を使う場合は、--with-token を使います。
gh auth login --with-token < mytoken.txt
たとえば mytoken.txt の中にトークン文字列だけを書いておいて、その内容を標準入力から渡すイメージです。
ファイルを作りたくない場合でも、シェル操作で渡せますが、トークンを平文で雑に扱わないように注意したいところです。
PAT利用時の注意点
GitHub CLI の公式マニュアルでは、--with-token で使う場合の最低限のスコープとして、classic token なら repo、read:org、gist が案内されています。
ただし、細かい制御がしやすい fine-grained token を使う場合は、対象リポジトリや権限の範囲によって挙動がわかりにくくなることがあります。
そのため、CLI 側でも「fine-grained token を使うなら環境変数 GH_TOKEN を使う方法を優先したほうがよい」と案内されています。
PATはパスワードと同じ扱いで考える
PAT は実質的にパスワードと同じです。
GitHub Docs でも、トークンはパスワード同等の機密情報として扱うよう案内されています。
また、必要以上に強い権限を付けず、できるだけ最小権限にするのが基本です。
有効期限もなるべく短めに設定して、不要になったら削除する運用のほうが安全です。
どの認証方法を選ぶべきか
- 普通のPC作業ならブラウザ認証
- 自動化やヘッドレス環境なら
GH_TOKEN - どうしても手元でPAT投入したい時だけ
--with-token
無理に PAT を使わなくてもいい場面では、CLI の標準認証を使うほうが安全です。
まとめ
GitHub CLI で PAT を使ってログインするなら、gh auth login --with-token で対応できます。
ただし、PAT は強い権限を持ちやすいので、作成時にはスコープ・有効期限・保管方法をちゃんと意識しておくのが大事です。
「とりあえず動けばOK」で雑に扱うと危ない部分なので、ここだけは慎重に運用したほうが安心です。
