このドキュメントでは、本リポジトリの push と GitHub Release 作成 を確実に行うための設定と手順を説明します。
git push origin mainは成功するが、gh release createを実行すると次のメッセージが出て失敗する:To get started with GitHub CLI, please run: gh auth loginAlternatively, populate the GH_TOKEN environment variable with a GitHub API authentication token.
原因: Git の認証(SSH や credential helper)と GitHub CLI (gh) の認証は別です。push には Git 認証だけあれば十分ですが、Release 作成には gh の認証が必要です。
- ターミナルで次を実行:
gh auth login
- 表示に従い、GitHub.com を選び、HTTPS または SSH、そして Login with a web browser(またはトークン貼り付け)で認証する。
- 完了後、同じマシンでは
gh release createがそのまま使えます。
確認:
gh auth statusLogged in to github.com as 〜 と出れば OK です。
gh は環境変数 GH_TOKEN(または GITHUB_TOKEN)が設定されていると、対話ログインなしで API にアクセスします。
- GitHub で Personal Access Token (PAT) を発行する
- GitHub → Settings → Developer settings → Personal access tokens
- スコープに少なくとも
repo(リポジトリと Release 作成に必要)を付与する。
- 手元のマシンで毎回使う場合(例: bash):
恒常的に使う場合は
export GH_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxx"
~/.bashrcや~/.zshrcに上記を追記(トークンは他人に見せないこと)。 - CI(GitHub Actions など)では、シークレットに
GH_TOKENまたはGITHUB_TOKENを設定し、ワークフロー内でenvに渡す。
確認:
export GH_TOKEN="ghp_あなたのトークン"
gh auth status- 手元でだけリリースする → 方法 A で十分です。
- CI でリリースする / スクリプトで非対話に実行したい → 方法 B(
GH_TOKEN)を使います。 - 両方設定していても問題ありません(
ghはログイン済みならそれを使い、なければGH_TOKENを参照します)。
-
認証の確認
gh auth status
未ログインの場合は上記「抜本的解決策」の A または B を実施する。
-
リリースノートの準備
ルートにRELEASE_NOTES_vX.Y.Z.mdを用意する(例:RELEASE_NOTES_v3.1.0.md)。
既に同じ名前のファイルがある場合はそのまま利用してよい。 -
push(まだの場合)
git push origin main
-
リリース作成
次のいずれかで実行する。オプション 1: npm スクリプト(推奨)
npm run release -- v3.1.0
未認証の場合は日本語でエラー案内を表示して終了します。
Windows でリリースする場合:
scripts/release.shは Bash 前提のため、Git Bash または WSL でnpm run release -- v3.1.0を実行してください。オプション 2: gh を直接使う
gh release create v3.1.0 \ --title "v3.1.0 - タイトル" \ --notes-file RELEASE_NOTES_v3.1.0.md
| 現象 | 対処 |
|---|---|
git push で Username を聞かれる |
Git の認証設定(SSH キーまたは credential helper)を確認する。GitHub のドキュメント を参照。 |
gh auth status で not logged in |
上記「方法 A」の gh auth login を実行する。 |
CI で gh が使えない |
シークレットで GH_TOKEN を設定し、ジョブの env に渡しているか確認する。 |