次の方法で共有


Crates.io のパッケージを使用する

Azure DevOps Services

Azure Artifacts アップストリーム ソースを使用すると、開発者は Crates.io や nuget.org などのパブリック レジストリからパッケージを使用できます。この記事では、プロジェクトを設定し、コマンド ラインを使用して Crates.io からクレートを使用する方法について説明します。

この記事では、次の方法を通してご案内します。

  • Azure Artifacts フィードを作成。
  • フィードに接続する
  • アップストリームからクレートを使用する

前提条件

  • Azure DevOps 組織。 まだ組織を作成していない場合は、組織を作成します。

  • Azure DevOps プロジェクト。 プロジェクト がない場合は作成します。

  • rustup をダウンロードしてインストール します

フィードの作成

Azure Artifacts では、crates.io からクレートを使用するための専用フィードと、内部クレートの発行専用の別のフィードを用意することをお勧めします。

  1. Azure DevOps 組織にサインインしてから、プロジェクトに移動します。

  2. [ Artifacts]\(成果物\) を選択し、フィードを作成します。

  3. フィードの名前を入力し、その可視性定義して、スコープを選択します。 パブリック レジストリからのパッケージを含めるには、アップストリーム ソース チェックボックスをチェックしてください。

  4. 終わったら [作成] を選択します。

    貨物アップストリームのフィードを作成する方法を示すスクリーンショット。

フィードに接続する

  1. Azure DevOps 組織にサインインしてから、プロジェクトに移動します。

  2. [ 成果物] を選択し、ドロップダウン メニューからフィードを選択します。

  3. [フィードに接続] を選択し、左側のナビゲーション ウィンドウから [Cargo] を選択します。

  4. Azure Artifacts で Cargo を初めて使用する場合は、rustupインストールされていることを確認してください。

  5. Project セットアップ セクションで指定したスニペットを、ソース リポジトリの .cargo/config.toml ファイルに追加します。

    • プロジェクト スコープのフィード
    [registries]
    <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/Cargo/index/" }
    
    [source.crates-io]
    replace-with = "<FEED_NAME>"
    
    • 組織スコープのフィード:
    [registries]
    <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" }
    
    [source.crates-io]
    replace-with = "<FEED_NAME>"
    

資格情報プロバイダーを構成する

Azure Artifacts で Cargo を使用するには、資格情報プロバイダーを設定する必要があります。 指定された設定では、現在のユーザーの既定の資格情報ヘルパーが構成されます。

%U Standard Edition RPROFILE%.cargo\config.toml に次のスニペットを貼り付けます。

[registry]
global-credential-providers = ["cargo:token", "cargo:wincred"]

レジストリにログインする

  1. パッケージ化>読み取り書き込みスコープを使用して個人用アクセス トークンを作成し、フィードで認証します。

  2. 次のコマンドを実行して、レジストリにログインします。 プレースホルダーをフィードの名前に置き換え、メッセージが表示されたら前の手順で作成した個人用アクセス トークンを貼り付けます。

    "Basic " + [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("PAT:" + (Read-Host -MaskInput "Enter PAT"))) | cargo login --registry <FEED_NAME>
    

Crates.io からパッケージを保存する

Note

アップストリームからパッケージを保存するには、フィードおよびアップストリーム 閲覧者 (コラボレーター) ロール以上が必要です。 詳細については、「 アクセス許可」を参照してください。

プロジェクトを設定し、資格情報プロバイダーを構成し、フィードにログインしたので、アップストリームからパッケージの使用を開始できます。 Azure Artifacts では、アップストリームからフィードにインストールしたパッケージのコピーが保存されます。

この例では、crate、 serde シリアル化/逆シリアル化フレームワークを使用します。

  1. プロジェクト ディレクトリで次のコマンドを実行して、クレートを cargo.toml に追加します。

    cargo add serde
    
  2. 次のコマンドを実行してプロジェクトをビルドし、クレートを使用します。

    cargo build
    

パッケージがインストールされると、コピーがフィードに保存されます。 フィードに移動して、その存在を確認します。 次に示すように、パッケージはフィードで使用できる必要があります。

アップストリームから使用された *serde* クレートを示すスクリーンショット。