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"]
登入您的帳戶
建立具有封裝讀取和寫入範圍的個人存取令牌來驗證您的摘要。
執行下列命令以登入您的登錄。 將佔位符替換成您的 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,一個序列化/反序列化框架。
在您的項目目錄中執行下列命令,將箱子新增至 您的 cargo.toml:
cargo add serde
執行下列命令來建置專案並取用您的套件:
cargo build
安裝套件之後,就會將複本儲存到您的動態。 前往您的動態消息以確認其存在。 您的套件應該可在您的動態消息中使用,如下圖所示: