gh コマンドでトークン認証して非対話的にクローンする — CI/CD・使い捨てコンテナ向け認証パターン完全ガイド

gh(GitHub CLI)は通常、gh auth login の対話的なブラウザフローで認証します。しかし CI/CD パイプライン、共有サーバー、使い捨てコンテナのような ブラウザもキーボード入力もない環境 では、その対話フローは使えません。 こうした「ヘッドレス(非対話)」環境では、アクセストークン(パーソナルアクセストークンなど)を環境変数で渡す ことでクローンを自動化できます。本記事では、推奨される認証パターンと、その際に陥りがちな落とし穴・セキュリティ上の注意点を整理します。 なお、本記事を書く過程で「gh auth token --web でトークン生成画面を開ける」という情報を検証したところ、そのようなフラグは存在しませんでした。よくある誤情報なので、後半で正しい代替手段とあわせて解説します。 方法1:環境変数 GH_TOKEN を使う(最もおすすめ) gh は、環境変数 GH_TOKEN(または GITHUB_TOKEN)にトークンが設定されていると、それを自動的に認証に使用します。gh auth login のような状態の保存を一切行わないため、自動化環境に最も適しています。 一時的にトークンを渡してクローンする場合は、1 行で実行できます。 1 GH_TOKEN=ghp_YourTokenHere gh repo clone owner/repo gh auth login --help のドキュメントにも、 Alternatively, gh will use the authentication token found in environment variables. This method is most suitable for “headless” use of gh such as in automation. と明記されており、自動化での利用は GH_TOKEN が公式推奨です。 ...

2026年5月27日 · 2 分