共用方式為


使用來自 Crates.io 的套件

Azure DevOps Services

Azure Artifacts 上游來源可讓開發人員從公用登錄取用套件,例如 Crates.io 和 nuget.org。本文將引導您設定專案,並使用命令行從 Crates.io 取用 Crate。

本文將引導您瞭解如何:

  • 建立 Azure Artifacts 摘要
  • 連線 至您的摘要
  • 從上游取用板箱

必要條件

建立摘要

Azure Artifacts 建議有專用的摘要來取用 crates.io 的箱子,以及專門發佈內部箱的個別摘要。

  1. 登入您的 Azure DevOps 組織,然後瀏覽至您的專案。

  2. 選取 [ 成品],然後選取 [ 建立摘要]。

  3. 輸入摘要的名稱、定義其可見度,然後選取您的範圍。 請務必核取 [ 上游來源] 複選框,以包含來自公用登錄的套件。

  4. 完成後,選取 [建立]

    顯示如何為上游貨物建立飼料的螢幕快照。

連線 至您的摘要

  1. 登入您的 Azure DevOps 組織,然後瀏覽至您的專案。

  2. 選取 [ 成品],然後從下拉功能表中選取您的摘要。

  3. 選取 連線 要饋送,然後從左側瀏覽窗格中選取 [貨物]。

  4. 如果這是第一次搭配 Azure Artifacts 使用 Cargo,請確定您已安裝 Rustup

  5. 將 [項目設定] 區段中提供的代碼段新增至來源存放庫中的 .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,您必須設定認證提供者。 提供的設定會為目前使用者設定預設認證協助程式:

在 %USERPROFILE%.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 儲存套件

注意

若要從上游儲存套件,您必須具有 摘要和上游讀取者(共同作業者) 角色或更高版本。 如需詳細資訊,請參閱 權限

既然我們已設定項目、設定認證提供者並登入我們的摘要,我們可以開始從上游取用套件。 Azure Artifacts 會將您從上游安裝的任何套件複本儲存到摘要。

在此範例中,我們會取用 serde crate、串行化/還原串行化架構:

  1. 在您的項目目錄中執行下列命令,將箱子新增至 您的 cargo.toml

    cargo add serde
    
  2. 執行下列命令來建置項目並取用您的箱子:

    cargo build
    

安裝套件之後,就會將複本儲存至您的摘要。 流覽至您的摘要以確認其存在。 您的套件應該可在摘要中使用,如下所示:

顯示從上游取用之 *serde* 箱的螢幕快照。