目次

dart pub token

dart pub token サブコマンドは、トークンのストアを管理します。パッケージを公開したり、依存関係を取得したりする際に、dart pub コマンドはトークンを使用してサードパーティサーバーに対する認証を行います。

これらのトークンは、ユーザー全体の構成ディレクトリに保存されます。 dart pub token サブコマンドには、3つのサブコマンド addlistremove があります。

dart pub コマンドでは、認証情報トークンシークレットシークレットトークンという用語は同じ意味で使用されます。

認証情報のユースケース

#

プライベートリポジトリでホストされている依存関係があるシナリオを考えてみましょう。 dart pub get コマンドを使用すると、認証情報の入力を求めるプロンプトが表示される場合があります。

$ dart pub get
Resolving dependencies... 
https://some-package-repo.com/my-org/my-repo package repository requested authentication!
You can provide credentials using:
    dart pub token add https://some-package-repo.com/my-org/my-repo

一部のサーバー(すべてではありません)では、トークンの取得方法に関する説明が記載されたメッセージも返されます。

新しい認証情報を追加

#

新しい認証情報を作成するには、dart pub token add コマンドを使用します。

現在のセッションの認証情報を追加

#

プロンプトで、コマンドライン(stdin)に認証情報を入力します。

$ dart pub token add https://some-package-repo.com/my-org/my-repo
Enter secret token: <Type token on stdin>
 Requests to "https://some-package-repo.com/my-org/my-repo" will now be 
 authenticated using the secret token.

すべてのセッションの認証情報を追加

#

すべてのターミナルセッションやスクリプトで同じトークンを使用するには、トークンを環境変数に保存します。

  1. トークンを環境変数に保存します。

    トークンがシェル履歴に表示されないようにしてください。この方法の1つとして、Mediumのこの記事をご覧ください。

  2. 追加した環境変数を有効にするには、開いているコンソールを再起動してください。

  3. 環境変数をトークンとして使用するには、dart pub token add コマンドを使用します

    $ dart pub token add <hosted-url> --env-var <TOKEN_VAR>

    このコマンドは、$TOKEN_VAR に保存されているトークンを読み取り、それを使用して目的のパッケージをホストしている hosted-url で認証を行います。 ターミナルには次の応答が出力されるはずです。

    $ dart pub token add https://other-package-repo.com/ --env-var TOKEN_VAR
    Requests to "https://other-package-repo.com/" will now be authenticated using the secret token stored in the environment variable "TOKEN_VAR".

ほとんどのCI環境では、トークンを環境変数に挿入できます。方法については、GitHub Actions または GitLab のドキュメントを参照してください。

認証情報の一覧を返す

#

アクティブなすべての認証情報の一覧を表示するには、dart pub token list コマンドを使用します

$ dart pub token list
You have secret tokens for 2 package repositories:
https://some-package-repo.com/my-org/my-repo
https://other-package-repo.com/

1つ以上の認証情報を削除

#

単一のトークンを削除するには、dart pub token remove コマンドを使用します

$ dart pub token remove https://other-package-repo.com
Removed secret token for package repository: https://other-package-repo.com

すべてのトークンを削除するには、上記のコマンドを remove --all オプションとともに使用します

$ dart pub token remove --all
pub-tokens.json is deleted.
Removed 1 secret tokens.