Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Azure Artifacts-Upstreamquellen ermöglichen es Entwicklern, die Paketverwaltung mithilfe eines einzelnen Feeds zu zentralisieren, um sowohl veröffentlichte Pakete als auch solche zu speichern, die aus öffentlichen Registries wie NuGet.org bezogen werden.
Upstreamquellen bieten mehrere Vorteile für die Verwaltung von Abhängigkeiten, einschließlich Einfachheit, Zuverlässigkeit und Paketintegrität. Siehe Was sind upstream-Quellen? für weitere Details.
Externe Quellversionen zulassen
Mit diesem Feature können Entwickler steuern, ob sie Paketversionen aus öffentlichen Registrierungen wie NuGet.org oder npmjs.com nutzen möchten.
Sobald der Umschalter " Externe Versionen zulassen " für ein bestimmtes Paket aktiviert ist, stehen Versionen aus der öffentlichen Registrierung zum Speichern im Feed zur Verfügung. Diese Option ist standardmäßig deaktiviert und fügt eine zusätzliche Sicherheitsebene hinzu, indem die Gefährdung von potenziell schädlichen Paketen aus öffentlichen Registrierungen reduziert wird. Das Ändern dieser Einstellung wirkt sich nicht auf paketversionen aus, die bereits im Feed gespeichert wurden. Diese Versionen bleiben unabhängig von dieser Einstellung zugänglich. Sie müssen Feed-Besitzer sein, um die Funktion Extern bezogene Versionen zulassen zu aktivieren.
Externe Versionen für ein Paket zulassen
Führen Sie die folgenden Schritte aus, um die Nutzung externer Versionen für ein bestimmtes Paket zu aktivieren:
Hinweis
Sie müssen ein Feedbesitzer sein, um extern stammende Versionen zuzulassen.
Melden Sie sich bei Azure DevOps an, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte aus, und wählen Sie dann Ihren Feed aus dem Dropdownmenü aus.
Wählen Sie Ihr Paket aus, wählen Sie die Schaltfläche mit den Auslassungspunkten für weitere Optionen aus, und wählen Sie dann "Externe Versionen zulassen" aus.
Aktivieren Sie die Option "Externe Versionen zulassen ", um das Feature zu aktivieren, und wählen Sie dann "Schließen" aus, wenn Sie fertig sind.
Zulassen externer Versionen mithilfe der REST-API
Verwenden Sie die folgenden Endpunkte, um externe Versionen für ein bestimmtes Paket mithilfe der REST-API zu aktivieren:
Zulassen externer Versionen mit PowerShell
Führen Sie die folgenden Schritte aus, um externe Versionen für ein bestimmtes Paket mithilfe von PowerShell zu aktivieren:
Erstellen Sie ein persönliches Zugriffstoken mit Berechtigungen zum Lesen, Schreiben und Verwalten von Packaging.
Erstellen Sie eine Umgebungsvariable für Ihr persönliches Zugriffstoken.
$env:PATVAR = "YOUR_PERSONAL_ACCESS_TOKEN"Konvertieren Sie Ihr persönliches Zugriffstoken in eine base64-codierte Zeichenfolge, und erstellen Sie den HTTP-Anforderungsheader.
$token = [Convert]::ToBase64String(([Text.Encoding]::ASCII.GetBytes("username:$env:PatVar"))) $headers = @{ Authorization = "Basic $token" }Erstellen Sie die Endpunkt-URL basierend auf Ihrem Feedtyp:
Projektbezogener Feed:
$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"Organisationsspezifischer Feed:
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=7.2-preview.1"
Führen Sie den Befehl aus der Tabelle basierend auf Ihrem Szenario aus:
Maßnahme Description Command Vorgelagertes Verhalten abrufen Rufen Sie den Upstreamverhaltensstatus Ihres Pakets ab. Verwendet $urlund$headersaus vorherigen Schritten.Invoke-RestMethod -Uri $url -Headers $headersVorgelagertes Verhalten festlegen Externe Quellversionen für Ihr Paket zulassen, indem Sie versionsFromExternalUpstreamsaufAllowExternalVersionssetzen.$body = '{"versionsFromExternalUpstreams": "AllowExternalVersions"}'
Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Patch -ContentType "application/json"Vorgelagertes Verhalten löschen Setzen Sie das Upstream-Verhalten zurück, indem Sie versionsFromExternalUpstreamsaufAutosetzen.$body = '{"versionsFromExternalUpstreams": "Auto"}'
Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Patch -ContentType "application/json"
Hinweis
Änderungen am vorgelagerten Verhalten können zeitaufwendiger sein, um über den Dienst verteilt zu werden. Wenn Ihr Paket nach dem Aktualisieren der Einstellungen nicht verfügbar ist, können sie bis zu 3 Stunden dauern, bis die Änderungen wirksam werden.
Zutreffende Szenarios
In diesem Abschnitt werden allgemeine Szenarien beschrieben, in denen externe Versionen (Pakete aus öffentlichen Registrierungen) entweder blockiert oder daran gehindert werden, im Feed gespeichert zu werden. Für den Rest dieses Artikels beziehen wir uns auf Pakete aus öffentlichen Registrierungen als öffentliche Pakete und Pakete, die in einem Azure Artifacts-Feed gespeichert sind, als private Pakete.
Szenario 1: Öffentliche Versionen werden blockiert
Öffentliche Versionen werden daran gehindert, im Feed zu speichern, wenn das Feature " Externe Versionen zulassen " in den folgenden beiden Fällen aktiviert ist:
Private Paketversion, die öffentlich gemacht wurde
Wenn später ein privates Paket öffentlich gemacht wird, blockiert der Feed alle neuen Versionen mit demselben Paketnamen aus öffentlichen Quellen.
Sowohl private als auch öffentliche Pakete haben
Wenn ein Team private und öffentliche Pakete verwendet, blockiert der Feed alle neuen Paketversionen aus der öffentlichen Registrierung, wenn die externe Version zugelassen ist.
Szenario 2: Öffentliche Versionen sind zulässig
Öffentliche Versionen dürfen im Feed gespeichert werden, wenn das Feature " Externe Versionen zulassen " in den folgenden drei Fällen aktiviert ist:
Alle Pakete sind privat
Wenn alle Pakete privat sind und das Team keine öffentlichen Pakete verwenden möchte, hat die Aktivierung dieser Einstellung keine Auswirkungen auf den Workflow des Teams.
Alle Pakete sind öffentlich
Wenn das Team ausschließlich öffentliche Pakete aus Registrierungen oder Open-Source-Repositorys nutzt, wirkt sich die Aktivierung der Einstellung nicht auf ihren Workflow aus.
Öffentliches Paket, das privat gemacht wurde
Wenn ein öffentliches Paket später in privat konvertiert wird, wirkt sich die Aktivierung der Einstellung "Externe Versionen zulassen" nicht auf den Workflow des Teams aus.