使用來自 Crates.io 的套件
Azure DevOps Services |Azure DevOps Server 2022
Azure Artifacts 上游來源可讓開發人員從公用登錄取用套件,例如 Crates.io 和 nuget.org。本文將引導您設定專案,並使用命令行從 Crates.io 取用 Crate。
本文將引導您瞭解如何:
- 建立 Azure Artifacts 摘要
- 線上到您的摘要
- 從上游取用板箱
必要條件
Azure DevOps 組織。 如果您尚未建立組織,請建立組織 。
Azure DevOps 專案。 如果您沒有專案,請建立專案 。
下載並安裝 rustup。
建立摘要
Azure Artifacts 建議有專用的摘要來取用 crates.io 的箱子,以及專門發佈內部箱的個別摘要。
登入您的 Azure DevOps 組織,然後瀏覽至您的專案。
選取 [ 成品],然後選取 [ 建立摘要]。
輸入摘要的名稱、定義其可見度,然後選取您的範圍。 請務必核取 [ 上游來源] 複選框,以包含來自公用登錄的套件。
完成後,選取 [建立]。
線上到您的摘要
登入您的 Azure DevOps 組織,然後瀏覽至您的專案。
選取 [ 成品],然後從下拉功能表中選取您的摘要。
選取 [ 連線至摘要],然後從左側瀏覽窗格中選取 [貨物 ]。
如果這是第一次搭配 Azure Artifacts 使用 Cargo,請確定您已安裝 Rustup。
將 [項目設定] 區段中提供的代碼段新增至來源存放庫中的 .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 DevOps 集合,然後流覽至您的專案。
選取 [ 成品],然後從下拉功能表中選取您的摘要。
選取 [ 連線至摘要],然後從左側瀏覽窗格中選取 [貨物 ]。
如果這是第一次搭配 Azure Artifacts 使用 Cargo,請確定您已安裝 Rustup。
將 [項目設定] 區段中提供的代碼段新增至來源存放庫中的 .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"]
登入您的登錄
使用封裝>讀取和寫入範圍建立個人存取令牌,以向您的摘要進行驗證。
執行下列命令以登入您的登錄。 將佔位元取代為您的摘要名稱,並在出現提示時貼上您在上一個步驟中建立的個人存取令牌:
"Basic " + [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("PAT:" + (Read-Host -MaskInput "Enter PAT"))) | cargo login --registry <FEED_NAME>
從 Crates.io 儲存套件
注意
若要從上游儲存套件,您必須具有 摘要和上游讀取者(共同作業者) 角色或更高版本。 如需詳細資訊,請參閱 管理許可權 。
既然我們已設定項目、設定認證提供者並登入我們的摘要,我們可以開始從上游取用套件。 Azure Artifacts 會將您從上游安裝的任何套件複本儲存到摘要。
在此範例中,我們會取用 serde
crate、串行化/還原串行化架構:
在您的項目目錄中執行下列命令,將箱子新增至 您的 cargo.toml:
cargo add serde
執行下列命令來建置項目並取用您的箱子:
cargo build
安裝套件之後,就會將複本儲存至您的摘要。 流覽至您的摘要以確認其存在。 您的套件應該可在摘要中使用,如下所示: