Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Les sources en amont d’Azure Artifacts permettent aux développeurs de centraliser la gestion des packages à l’aide d’un seul flux pour stocker les packages publiés et ceux consommés à partir de registres publics tels que NuGet.org.
Les sources en amont offrent plusieurs avantages pour la gestion des dépendances, notamment la simplicité, la fiabilité et l’intégrité des packages. Pour plus d’informations, consultez Quelles sont les sources en amont ?.
Autoriser les versions sources externes
Cette fonctionnalité permet aux développeurs de contrôler s’ils souhaitent consommer des versions de package à partir de registres publics tels que NuGet.org ou npmjs.com.
Une fois que le bouton bascule Autoriser les versions externes est activé pour un package spécifique, les versions du registre public deviennent disponibles pour être enregistrées dans le flux. Par défaut, cette option est désactivée, en ajoutant une couche supplémentaire de sécurité en réduisant l’exposition aux packages potentiellement malveillants à partir de registres publics. La modification de ce paramètre n’affecte pas les versions de package déjà enregistrées dans le flux. Ces versions restent accessibles indépendamment de ce paramètre. Vous devez être propriétaire du flux pour activer la fonctionnalité autoriser les versions sources externes .
Autoriser les versions externes d’un package
Pour activer l’utilisation de versions externes pour un package spécifique, procédez comme suit :
Remarque
Vous devez être propriétaire du flux pour autoriser les versions sources externes.
Connectez-vous à Azure DevOps, puis accédez à votre projet.
Sélectionnez Artefacts, puis sélectionnez votre flux dans le menu déroulant.
Sélectionnez votre package, sélectionnez le bouton de sélection pour plus d’options, puis sélectionnez Autoriser les versions sources externes.
Activez l'option 'Autoriser les versions externes' pour activer cette fonctionnalité, puis sélectionnez Fermer lorsque vous avez terminé.
Autoriser les versions externes à l’aide de l’API REST
Pour activer des versions externes pour un package spécifique à l’aide de l’API REST, utilisez les points de terminaison suivants :
| Type de paquet | Points de terminaison d’API |
|---|---|
| NuGet |
-
Définir le comportement en amont - Obtenir le comportement en amont |
| npm |
-
Définir le comportement en amont - Définir les paramètres d'amont dans un contexte spécifique - Obtenir le comportement d’amont du package - Obtenir le comportement d’amont du package délimité |
| Python |
-
Obtenir le comportement en amont - Définir le comportement en amont |
| Maven |
-
Obtenir le comportement en amont - Définir le comportement en amont |
| Cargaison |
-
Obtenir le comportement en amont - Définir le comportement en amont |
Autoriser les versions externes à l’aide de PowerShell
Pour activer des versions externes pour un package spécifique à l’aide de PowerShell, procédez comme suit :
Créez un jeton d’accès personnel avec l’empaquetage>en lecture, écriture et gestion des autorisations.
Créez une variable d’environnement pour votre jeton d’accès personnel.
$env:PATVAR = "YOUR_PERSONAL_ACCESS_TOKEN"Convertissez votre jeton d’accès personnel en chaîne codée en base64 et construisez l’en-tête de requête HTTP.
$token = [Convert]::ToBase64String(([Text.Encoding]::ASCII.GetBytes("username:$env:PatVar"))) $headers = @{ Authorization = "Basic $token" }Construisez l’URL du point de terminaison en fonction de votre type de flux :
Flux dans l’étendue du projet :
$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"Flux d’étendue de l’organisation :
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=7.2-preview.1"
Exécutez la commande à partir de la table en fonction de votre scénario :
Action Descriptif Command Obtenir le comportement du flux en amont Récupérez l’état de comportement en amont de votre package. Utilise $urlet$headersà partir des étapes précédentes.Invoke-RestMethod -Uri $url -Headers $headersDéfinir le comportement de remontée Autorisez les versions sources externes pour votre package en définissant versionsFromExternalUpstreamssurAllowExternalVersions.$body = '{"versionsFromExternalUpstreams": "AllowExternalVersions"}'
Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Patch -ContentType "application/json"Effacer le comportement de remontée Réinitialisez le comportement en amont en définissant versionsFromExternalUpstreamssurAuto.$body = '{"versionsFromExternalUpstreams": "Auto"}'
Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Patch -ContentType "application/json"
Remarque
Les modifications apportées au comportement en amont peuvent prendre du temps pour se propager sur le service. Si votre package n’est pas disponible après la mise à jour des paramètres, autorisez jusqu’à 3 heures pour que les modifications prennent effet.
Scénarios applicables
Cette section décrit les scénarios courants dans lesquels les versions externes (packages provenant de registres publics) sont bloquées ou autorisées à être enregistrées dans le flux. Pour le reste de cet article, nous faisons référence aux packages des registres publics en tant que packages publics et packages stockés dans un flux Azure Artifacts en tant que packages privés.
Scénario 1 : Les versions publiques sont bloquées
Les versions publiques ne sont pas enregistrées dans le flux lorsque la fonctionnalité Autoriser les versions externes est activée dans les deux cas suivants :
Version du package privé rendue publique
Si un package privé est rendu public ultérieurement, le flux bloque toutes les nouvelles versions portant le même nom de package à partir de sources publiques.
Avoir des packages privés et publics
Lorsqu’une équipe utilise à la fois des packages privés et publics, le flux bloque toutes les nouvelles versions de package à partir du Registre public lorsque la version externe autorisée est activée.
Scénario 2 : Les versions publiques sont autorisées
Les versions publiques sont autorisées à être enregistrées dans le flux lorsque la fonctionnalité Autoriser les versions externes est activée dans les trois cas suivants :
Tous les packages sont privés
Si tous les packages sont privés et que l’équipe ne prévoit pas d’utiliser des packages publics, l’activation de ce paramètre n’a aucun impact sur le flux de travail de l’équipe.
Tous les packages sont publics
Si l’équipe consomme exclusivement des packages publics à partir de registres ou de référentiels open source, l’activation du paramètre n’affecte pas leur flux de travail.
Package public rendu privé
Lorsqu’un package public est converti ultérieurement en fichier privé, l’activation du paramètre autoriser les versions externes n’affecte pas le flux de travail de l’équipe.