メインコンテンツにスキップ

dart pub token

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

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

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.