Použití balíčků z Crates.io
Azure DevOps Services | Azure DevOps Server 2022
Upstreamové zdroje Azure Artifacts umožňují vývojářům využívat balíčky z veřejných registrů, jako jsou Crates.io a nuget.org. Tento článek vás provede nastavením projektu a použitím příkazového řádku ke zpracování Crates z Crates.io.
Tento článek vás provede následujícími postupy:
- Vytvoření informačního kanálu Azure Artifacts
- Připojení k informačnímu kanálu
- Spotřebovávat bedny z upstreamu
Požadavky
Organizace Azure DevOps. Pokud jste to ještě neudělali, vytvořte organizaci .
Projekt Azure DevOps. Pokud ho nemáte, vytvořte projekt .
Stáhněte a nainstalujte rustup.
Vytvoření informačního kanálu
Azure Artifacts doporučuje mít vyhrazený kanál pro využívání krabic z crates.io a samostatného informačního kanálu výhradně pro publikování interních krabic.
Přihlaste se ke své organizaci Azure DevOps a přejděte k projektu.
Vyberte Artefakty a pak vyberte Vytvořit informační kanál.
Zadejte název informačního kanálu, definujte jeho viditelnost a pak vyberte obor. Nezapomeňte zaškrtnout políčko Nadřazené zdroje a zahrnout balíčky z veřejných registrů.
Až budete hotovi, vyberte Vytvořit .
Připojení k informačnímu kanálu
Přihlaste se ke své organizaci Azure DevOps a přejděte k projektu.
Vyberte Artefakty a pak v rozevírací nabídce vyberte svůj informační kanál.
Vyberte Připojit k informačnímu kanálu a pak v levém navigačním podokně vyberte Cargo .
Pokud používáte Cargo s Azure Artifacts poprvé, ujistěte se, že jste nainstalovali rustup.
Do souboru .cargo/config.toml ve zdrojovém úložišti přidejte zadaný fragment kódu v části Nastavení projektu:
- Informační kanál s oborem projektu:
[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>"
- Informační kanál s oborem organizace:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
Konfigurace zprostředkovatele přihlašovacích údajů
Pokud chcete použít Cargo s Azure Artifacts, musíte nastavit zprostředkovatele přihlašovacích údajů. Za předpokladu, že pro aktuálního uživatele nakonfigurujete výchozí pomocnou rutinu přihlašovacích údajů:
Do souboru %USERPROFILE%.cargo\config.toml vložte následující fragment kódu:
[registry]
global-credential-providers = ["cargo:token", "cargo:wincred"]
Přihlášení k registru
Vytvořte osobní přístupový token s rozsahy čtení a zápisu balíčku>pro ověření v informačním kanálu.
Spuštěním následujícího příkazu se přihlaste k registru. Nahraďte zástupný symbol názvem informačního kanálu a po zobrazení výzvy vložte token patu, který jste vytvořili v předchozím kroku:
"Basic " + [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("PAT:" + (Read-Host -MaskInput "Enter PAT"))) | cargo login --registry <FEED_NAME>
Ukládání balíčků z Crates.io
Poznámka:
Pokud chcete ukládat balíčky z upstreamů, musíte mít roli Feed and Upstream Reader (Spolupracovníci) nebo vyšší. Další podrobnosti najdete v tématu Správa oprávnění .
Teď, když jsme nastavili projekt, nakonfigurovali zprostředkovatele přihlašovacích údajů a přihlásili se k našemu informačnímu kanálu, můžeme začít využívat balíčky z upstreamu. Azure Artifacts ukládá kopii jakéhokoli balíčku, který nainstalujete z upstreamu do informačního kanálu.
V tomto příkladu používáme bednu, serializaci/deserializační architekturu serde
:
Spuštěním následujícího příkazu v adresáři projektu přidejte bednu do souboru cargo.toml:
cargo add serde
Spuštěním následujícího příkazu sestavte projekt a spotřebujte bednu:
cargo build
Po instalaci balíčku se do informačního kanálu uloží kopie. Přejděte do informačního kanálu a ověřte jeho přítomnost. Balíček by měl být k dispozici v informačním kanálu, jak je znázorněno níže: