Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020
Upstreamové zdroje Azure Artifacts umožňují vývojářům centralizovat správu balíčků pomocí jednoho informačního kanálu k ukládání publikovaných balíčků i těch, které se využívají z veřejných registrů, jako je NuGet.org.
Upstreamové zdroje nabízejí několik výhod pro správu závislostí, včetně jednoduchosti, spolehlivosti a integrity balíčků. Podívejte se na Co jsou nadřazené zdroje? pro další podrobnosti.
Povolit externě zdrojové verze
Tato funkce umožňuje vývojářům řídit, jestli chtějí využívat verze balíčků z veřejných registrů, jako jsou NuGet.org nebo npmjs.com.
Jakmile je přepínač Povolit externí verze pro určitý balíček povolený, budou verze z veřejného registru k dispozici pro uložení do informačního kanálu. Ve výchozím nastavení je tato možnost zakázaná a přidává další vrstvu zabezpečení snížením ohrožení potenciálně škodlivých balíčků z veřejných registrů. Změna tohoto nastavení nemá vliv na verze balíčků, které jsou již uloženy v informačním kanálu. Tyto verze zůstanou přístupné bez ohledu na toto nastavení. Musíte být vlastníkem informačního kanálu, abyste mohli povolit funkci umožnit externě zdrojené verze.
Povolit externí verze pro balíček
Pokud chcete povolit používání externích verzí pro konkrétní balíček, postupujte takto:
Poznámka:
Pokud chcete povolit verze z externích zdrojů, musíte být vlastníkem informačního kanálu.
Přihlaste se k Azure DevOps a přejděte do svého projektu.
Vyberte Artefakty a pak v rozevírací nabídce vyberte svůj informační kanál.
Vyberte balíček, vyberte tlačítko se třemi tečky pro další možnosti a pak vyberte Povolit externě zdrojové verze.
Pokud chcete funkci povolit, přepněte možnost Povolit externí verze a po dokončení vyberte Zavřít .
Povolení externích verzí pomocí rozhraní REST API
Pokud chcete povolit externí verze pro konkrétní balíček pomocí rozhraní REST API, použijte následující koncové body:
| Typ balíčku | Koncové body rozhraní API |
|---|---|
| NuGet |
-
Nastavení chování upstreamingu - Získání chování průběhu upstreamu |
| npm |
-
Nastavení chování upstreamingu - Nastavení chování upstreamingu s vymezeným oborem - Získání chování upstreamingu balíčku - Získání chování při upstreamování balíčku s vymezeným oborem |
| Krajta |
-
Získání chování upstreamingu - Nastavení chování upstreamingu |
| Odborník |
-
Získat chování směřování nahoru - Nastavit chování upstreamu |
| Náklad |
-
Získání chování upstreamingu - Nastavení chování upstreamu |
Povolení externích verzí pomocí PowerShellu
Pokud chcete povolit externí verze pro konkrétní balíček pomocí PowerShellu, postupujte takto:
Vytvořte osobní přístupový token s oprávněními pro Balíčkování>
Vytvořte proměnnou prostředí pro váš osobní přístupový token.
$env:PATVAR = "YOUR_PERSONAL_ACCESS_TOKEN"Převeďte svůj osobní přístupový token na řetězec s kódováním Base64 a vytvořte hlavičku požadavku HTTP.
$token = [Convert]::ToBase64String(([Text.Encoding]::ASCII.GetBytes("username:$env:PatVar"))) $headers = @{ Authorization = "Basic $token" }Vytvořte adresu URL koncového bodu na základě vašeho typu informačního kanálu:
Informační kanál omezený na projekt:
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=7.2-preview.1"Organizačně vymezený informační kanál
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=7.2-preview.1"
Spusťte příkaz z tabulky na základě vašeho scénáře:
Činnost Description Command Získání chování upstream Načtěte stav nadřazeného chování balíčku. Používá $urla$headersz předchozích kroků.Invoke-RestMethod -Uri $url -Headers $headersNastavení chování upstreamingu Povolte pro balíček externě zdrojové verze nastavením versionsFromExternalUpstreamsnaAllowExternalVersions.$body = '{"versionsFromExternalUpstreams": "AllowExternalVersions"}'
Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Patch -ContentType "application/json"Vyjasnění chování upstreamingu Resetujte chování upstreamu nastavením versionsFromExternalUpstreamsnaAuto.$body = '{"versionsFromExternalUpstreams": "Auto"}'
Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Patch -ContentType "application/json"
Poznámka:
Rozšíření změn nadřazeného chování ve službě může nějakou dobu trvat. Pokud balíček po aktualizaci nastavení není k dispozici, počkejte až 3 hodiny, než se změny projeví.
Použitelné scénáře
Tato část popisuje běžné scénáře, kdy jsou externí verze (balíčky z veřejných registrů) blokovány nebo povoleny, aby byly uloženy do kanálu. Ve zbývající části tohoto článku odkazujeme na balíčky z veřejných registrů jako veřejné balíčky a balíčky uložené v informačním kanálu Azure Artifacts jako soukromé balíčky.
Scénář 1: Veřejné verze jsou blokované
Veřejné verze jsou blokovány před uložením do kanálu, pokud je povolena funkce Povolit externí verze v následujících dvou případech:
Veřejná verze privátního balíčku
Pokud se privátní balíček později zpřístupní, kanál zablokuje všechny nové verze se stejným názvem balíčku z veřejných zdrojů.
Používání privátních i veřejných balíčků
Pokud tým používá privátní i veřejné balíčky, zdroj blokuje všechny nové verze balíčků z veřejného registru, pokud je umožněný externí přístup.
Scénář 2: Veřejné verze jsou povolené
Veřejné verze je možné uložit do informačního kanálu, pokud je povolená funkce Povolit externí verze v následujících třech případech:
Všechny balíčky jsou soukromé.
Pokud jsou všechny balíčky soukromé a tým neplánuje používat veřejné balíčky, povolení tohoto nastavení nemá žádný vliv na pracovní postup týmu.
Všechny balíčky jsou veřejné.
Pokud tým výhradně využívá veřejné balíčky z registrů nebo opensourcových úložišť, povolení nastavení neovlivní jejich pracovní postup.
Veřejný balíček vytvořený jako soukromý
Když se veřejný balíček později převede na privátní, povolení nastavení umožňujícího externí verze neovlivní pracovní postup týmu.