共用方式為


使用來自 Crates.io 的套件

Azure DevOps Services |Azure DevOps Server 2022

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>"
      
  1. 登入您的 Azure DevOps 集合,然後流覽至您的專案。

  2. 選取 構件,然後從下拉功能表中選取您的資料流。

  3. 選取 連線至訊息源,然後從左側瀏覽窗格中選取 貨物

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

  5. 專案設定區段中提供的程式碼段新增至你的原始碼庫中的.cargo/config.toml檔案:

    • 專案範圍的摘要

      [registries]
      <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<COLLECTION_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/<COLLECTION_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. 執行下列命令以登入您的登錄。 將佔位符替換成您的 Feed 名稱,當系統提示時,請貼上您在上一個步驟中建立的個人訪問權杖:

    "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* 箱的螢幕快照。