メインコンテンツへスキップ
見出し画像

GitHub CLIのトークンが「期限付き」に——gh auth token を保存しているスクリプトを5分で洗い出す手順

    10月21日にリリースされたGitHub CLI v2.103.0で、期限付きで自動更新されるOAuthトークンがパブリックプレビューになりました。漏れても数時間で使えなくなる、という守りの強い仕組みです。一方で、トークンを変数やファイルに保存して使い回している人は、有効にした途端にスクリプトが止まる可能性があります。

    結論(3行)

    ・期限付きトークンは自分で有効にしない限り始まらない(オプトイン)。今すぐ全員が壊れるわけではない
    ・壊れるのは `gh auth token` の出力を保存して使い回すスクリプトや拡張。期限が切れたトークンを握り続ける
    ・やることは、保存している箇所を洗い出し、使う場面ごとに呼び直す形へ書き換えること。環境変数で渡すトークンは仕組みの対象外

    何が起きたのか

    ・GitHub CLIが、短命のアクセストークンと、使うたびに入れ替わるリフレッシュトークンの組を扱えるようになりました
    ・トークンが漏れても、数時間で使えなくなります。再ログインは要らず、ghが裏で自動更新します
    ・有効にする方法は2つです。ログイン時に `gh auth login --expiring` を付けるか、`gh config set expiring_credentials enabled` で今後のログインすべてに適用します
    ・v2.103.0以上が必要です。github.com、ghe.com、GitHub Enterprise Server 3.23以上で使えます
    ・プレビュー提供で、標準の動作はまだ変わりません

    よくある質問

    Q. アップデートしただけでトークンが期限付きになる?

    A. なりません。オプトインで、上の2つのどちらかを行ったときだけです。

    Q. 期限付きにすると何が嬉しい?

    A. トークンが漏れたときの被害が小さくなります。長期トークンはユーザーが失効させるまで使われ続けますが、短命のトークンは数時間で無効になります。AIエージェントやCIにGitHubへの権限を渡す機会が増えた今、守りを足す意味は大きいです。

    Q. 自分のスクリプトは壊れる?

    A. `gh auth token` の出力を保存して使い回していれば、壊れる可能性があります。保存しておらず、毎回ghを呼ぶだけなら影響は小さいはずです。

    Q. 環境変数 GH_TOKEN で渡しているけど?

    A. その場合は更新の仕組みを通りません。期限付きの恩恵も、期限切れの問題も、基本的には別の話になります。

    Q. 結局、何をすればいい?

    A. 有料部分に、洗い出しの手順と、書き換えの考え方、有効にする順番をまとめました。

     
     
    Claude・Cursor・Codexを使って開発しながら、 AI×Flutter界隈のニュースを毎日まとめています。 🤖 Claude Code / Cursor / Codex 実践者 📰 毎日AIニュース10選を更新中

    あなたへのおすすめ