毎回mise trustを実行するのが手間

【mise】mise trustで設定ファイルを信頼する で紹介したとおり、[env][tasks]を含むmise.tomlmise trustを実行するまで読み込めない。CI環境など対話的にmise trustを実行できない場所や、決まったディレクトリ配下のプロジェクトをまとめて信頼済みにしたい場合には不便である。環境変数MISE_TRUSTED_CONFIG_PATHSにパスを指定すると、mise trustを実行しなくても、そのパス配下の設定ファイルを信頼済みとして扱える。

MISE_TRUSTED_CONFIG_PATHSの基本

環境変数FOOを定義したmise.tomlがあるプロジェクトで、mise trustを実行せずにmise envを実行するとエラーになる。

$ mise env
mise ERROR error parsing config file: /path/to/project/mise.toml
mise ERROR Config files in /path/to/project/mise.toml are not trusted.
Trust them with `mise trust`. See https://mise.jdx.dev/cli/trust.html for more information.

MISE_TRUSTED_CONFIG_PATHSにこのプロジェクトのパスを指定すると、mise trustを実行しなくてもエラーにならない。

$ export MISE_TRUSTED_CONFIG_PATHS=/path/to/project
$ mise env
export FOO=bar
export PATH='...'

サブディレクトリも信頼される

MISE_TRUSTED_CONFIG_PATHSはディレクトリ単位で判定されるため、指定したパスの配下にあるサブディレクトリも信頼済みとして扱われる。/path/to/projectsを指定すると、その下にある/path/to/projects/app-a/path/to/projects/app-bも個別に指定しなくても信頼される。単純な文字列の前方一致ではないため、/path/to/projects-oldのような別ディレクトリは信頼されない。

$ export MISE_TRUSTED_CONFIG_PATHS=/path/to/projects
$ cd /path/to/projects/app-a
$ mise env
export APP=a

指定したパスに含まれないディレクトリでは、引き続きmise trustが必要になる。

複数のパスを指定する

複数のパスを信頼したい場合は、Unix系OSでは:で区切って指定する。

export MISE_TRUSTED_CONFIG_PATHS="/path/to/project-a:/path/to/project-b"

Windowsでは;で区切る。

シェルの設定に登録する

MISE_TRUSTED_CONFIG_PATHSはシェルの起動ファイル(.bashrc.zshrcなど)にエクスポートしておくと、常に指定したパス配下の設定ファイルが信頼済みとして扱われる。決まった場所に複数のプロジェクトを置いて開発する場合、そのディレクトリをまとめて指定しておけば、新しいプロジェクトを追加するたびにmise trustを実行する手間を省ける。

export MISE_TRUSTED_CONFIG_PATHS="$HOME/projects"