どの環境変数のトークンが使われているか分かりにくい

miseはツールのインストール時に、GitHubなどのgitプロバイダーAPIへ認証付きでリクエストするため、環境変数からトークンを読み取る。しかし複数のトークン系環境変数が定義されていると、実際にどれが使われているのか分かりにくい。mise tokenを使うと、miseが実際に使うトークンとその解決元(環境変数名)を確認できる。

mise tokenの基本

githubgitlabforgejoのサブコマンドがあり、それぞれ既定のホスト(github.comgitlab.comcodeberg.org)向けのトークンを表示する。何もトークンを設定していない状態では(none)と表示される。

$ mise token github
github.com: (none)

GITHUB_TOKENを設定すると、そのトークンが検出される。

$ GITHUB_TOKEN=ghp_dummytoken1234567890 mise token github
github.com: ghp_…7890 (source: GITHUB_TOKEN)

既定ではトークンの先頭と末尾数文字だけを残してマスク表示される。source欄で、どの環境変数から解決されたかが分かる。

MISE_GITHUB_TOKENの方が優先される

GITHUB_TOKENMISE_GITHUB_TOKENの両方が設定されている場合、MISE_GITHUB_TOKENが優先される。

$ GITHUB_TOKEN=ghp_fromgithub2222222222 MISE_GITHUB_TOKEN=ghp_frommise1111111111 mise token github
github.com: ghp_…1111 (source: MISE_GITHUB_TOKEN)

【mise】mise-actionのgithub_token入力でAPIレート制限を回避する で紹介したとおり、jdx/mise-actiongithub_token入力をMISE_GITHUB_TOKENとして設定する。CI環境で意図したトークンが使われているか確認したい場合、ワークフロー内でmise token githubを実行すると解決結果を確認できる。

–unmask/–rawで実際の値を確認する

マスクを外して全体を表示するには--unmaskを使う。

$ GITHUB_TOKEN=ghp_dummytoken1234567890 mise token github --unmask
github.com: ghp_dummytoken1234567890 (source: GITHUB_TOKEN)

トークンの値だけを取り出してスクリプトなどに渡したい場合は--rawを使う。

$ GITHUB_TOKEN=ghp_dummytoken1234567890 mise token github --raw
ghp_dummytoken1234567890

この--rawgithubサブコマンド固有のオプションで、トークン値だけを出力する。gitlabforgejoサブコマンドにも同名の--rawフラグがあるが、こちらは全コマンド共通のグローバルフラグ(入出力を行単位ではなく直接扱う設定)であり、意味が異なる。mise token gitlab --rawを実行しても、トークン値だけが出力されるわけではなく通常のマスク済み出力のままになる。

HOSTを指定してセルフホスト環境を確認する

GitHub Enterprise ServerやセルフホストのGitLabなど、既定と異なるホストのトークンを確認したい場合は、引数にホスト名を指定する。

$ GITLAB_TOKEN=glpat-dummy1234567890 mise token gitlab gitlab.mycompany.com
gitlab.mycompany.com: glpa…7890 (source: GITLAB_TOKEN)

githubサブコマンドだけが持つOAuth関連オプション

githubサブコマンドには--oauth--refreshといった、環境変数を経由せずmise独自のGitHub OAuth認証(デバイスコードフロー)を扱うオプションがある。gitlabforgejoのサブコマンドにはこれらのオプションはなく、環境変数からの解決結果を確認する用途に限られる。