Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Azure Artifacts permet aux développeurs de gérer leurs packages à partir de différentes sources, y compris les registres publics tels que npmjs.com et les flux privés. Pour vous authentifier auprès d’Azure Artifacts, vous devez configurer votre fichier de configuration npm. Ce fichier contient des URL de flux et des informations d’identification utilisées par npm, offrant des options pour personnaliser le comportement de votre client npm, telles que la configuration de proxys, la définition des emplacements de package par défaut ou la configuration des flux de package privés. Le fichier .npmrc se trouve généralement dans le répertoire de base de l’utilisateur, mais peut également être créé au niveau du projet pour remplacer les paramètres par défaut.
Azure Artifacts recommande d’utiliser deux fichiers de configuration distincts. La première est dédiée à l’authentification auprès d’Azure Artifacts, tandis que la seconde doit être conservée localement pour stocker vos informations d’identification. Cette approche vous permet de partager votre fichier de configuration tout en conservant vos informations d’identification sécurisées.
Pour configurer le deuxième fichier, placez-le simplement dans votre répertoire de base sur votre ordinateur de développement et incluez toutes vos informations d’identification de Registre. Cela permet au client npm d’accéder facilement à vos informations d’identification pour l’authentification.
Les étapes suivantes vous guideront tout au long de la configuration du premier fichier de configuration :
Remarque
vsts-npm-auth n’est pas pris en charge dans Azure DevOps Server.
Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.
Sélectionnez Artefacts, puis connectez-vous au flux.
Sélectionnez npm dans la barre latérale gauche. S’il s’agit de la première utilisation d’Azure Artifacts avec npm, vérifiez que vous avez installé les prérequis.
Suivez les instructions de la section Configuration de Project pour vous connecter à votre flux.
Ajoutez un fichier .npmrc dans le répertoire de votre projet, dans le même répertoire que votre fichier package.json , puis collez l’extrait de code suivant dans celui-ci.
Copiez l’extrait de code suivant et collez-le dans votre fichier npmrc au niveau de l’utilisateur :
Flux d’étendue de l’organisation :
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:username=[ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Flux dans l’étendue du projet :
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Exécutez la commande suivante dans une fenêtre d’invite de commandes, puis collez votre jeton d’accès personnel lorsque vous y êtes invité. Une fois l’opération terminée, copiez la valeur encodée base 64 générée.
Si vous êtes sur Linux/Mac, vous pouvez également utiliser la commande suivante pour convertir votre jeton d’accès personnel en Base 64. Copiez la valeur encodée En Base64 résultante.
echo -n "YOUR_PERSONAL_ACCESS-TOKEN" | base64
Remplacez les espaces réservés [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] dans votre fichier .npmrc utilisateur par le jeton d’accès personnel encodé obtenu à l’étape précédente.
Connectez-vous à votre collection Azure DevOps puis accédez à votre projet.
Sélectionnez Artefacts, puis connectez-vous au flux.
Sélectionnez npm dans la barre latérale gauche, puis suivez les instructions de la section Configuration du projet pour configurer votre fichier de configuration.
Ajoutez un fichier .npmrc dans le répertoire de votre projet, dans le même répertoire que votre fichier package.json , puis collez l’extrait de code suivant dans celui-ci.
Copiez l’extrait de code suivant et collez-le dans votre fichier .npmrc au niveau de l’utilisateur :
Flux délimité à la collection :
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Flux dans l’étendue du projet :
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Exécutez la commande suivante dans une fenêtre d’invite de commandes, puis collez votre jeton d’accès personnel lorsque vous y êtes invité. Une fois l’opération terminée, copiez la valeur encodée base 64 générée.
Remplacez les espaces réservés [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] dans votre fichier .npmrc utilisateur par le jeton d’accès personnel encodé obtenu à l’étape précédente.
Connectez-vous à votre collection Azure DevOps puis accédez à votre projet.
Sélectionnez Artefacts, puis connectez-vous au flux.
Sélectionnez npm à gauche, puis suivez les instructions de la configuration de Project pour configurer votre fichier de configuration.
Ajoutez un fichier .npmrc dans le répertoire de votre projet, dans le même répertoire que votre fichier package.json, puis collez l’extrait de code suivant dans celui-ci :
Copiez l’extrait de code suivant et collez-le dans votre fichier .npmrc au niveau de l’utilisateur :
Flux délimité à la collection :
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Flux dans l’étendue du projet :
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Exécutez la commande suivante dans une fenêtre d’invite de commandes, puis collez votre jeton d’accès personnel lorsque vous y êtes invité. Une fois l’opération terminée, copiez la valeur encodée base 64 générée.
Remplacez les espaces réservés [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] dans votre fichier .npmrc utilisateur par le jeton d’accès personnel encodé obtenu à l’étape précédente.
Connectez-vous à votre collection Azure DevOps puis accédez à votre projet.
Sélectionnez Artefacts, puis connectez-vous au flux.
Une nouvelle fenêtre s'affiche. Dans le volet de navigation de gauche, sélectionnez npm.
Suivez les instructions fournies pour configurer vos fichiers .npmrc et projet.
Conseil
L’utilisation de plusieurs registres dans les fichiers .npmrc est prise en charge avec des étendues et des sources en amont.
Authentification de pipeline
Pour vous authentifier auprès de votre pipeline, Azure Artifacts recommande d’utiliser la tâche d’authentification npm.
Lorsque vous utilisez des exécuteurs de tâches tels que gulp ou Grunt, il est de hiérarchiser la définition de votre tâche d’authentification npm au début de votre pipeline. Cette étape garantit que vos informations d’identification sont injectées dans le fichier .npmrc de votre projet et conservées tout au long de l’exécution du pipeline, ce qui permet aux étapes suivantes d’accéder aux informations d’identification dans le fichier de configuration.
Accédez à votre projet, sélectionnez Pipelines, puis sélectionnez votre définition de pipeline.
Sélectionnez Modifier pour modifier votre pipeline.
Sélectionnez cette option + pour ajouter une nouvelle tâche à votre pipeline.
Accédez à votre projet, sélectionnez Builds pipelines>, puis sélectionnez votre définition de build.
Sélectionnez Modifier pour modifier votre pipeline de build.
Sélectionnez cette option + pour ajouter une nouvelle tâche à votre pipeline de build.
Recherchez la tâche d’authentification npm, puis sélectionnez Ajouter.
Sélectionnez votre fichier .npmrc , puis sélectionnez Enregistrer et file d’attente lorsque vous avez terminé.
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc ## Path to the npmrc file
customEndpoint: #Optional ## Comma-separated list of npm service connection names for registries from external organizations. For registries in your org, leave this blank
Remarque
Pour accéder à votre flux à partir de votre pipeline, assurez-vous que le rôle de service de génération est défini sur Feed And Upstream Reader (Contributeur) dans vos autorisations de paramètres>de flux.
Remarque
Si votre organisation utilise un pare-feu ou un serveur proxy, veillez à autoriser les URL de domaine appropriées. Pour plus d’informations, consultez les adresses IP autorisées et les URL de domaine.
Résolution des problèmes
vsts-npm-auth n’est pas reconnu
Cette erreur indique que le dossier des modules npm n’a pas été ajouté à votre chemin d’accès. Réexécutez le programme d’installation Node.js et veillez à sélectionner l’option Add to PATH . Vous pouvez également ajouter le dossier des modules npm à votre chemin en modifiant la variable PATH à %APPDATA%\npm l’invite de commandes ou $env:APPDATA\npm dans PowerShell.
Impossible de s’authentifier
Erreur : code E401 npm ERR ! Impossible de s’authentifier : -> Exécutez la vsts-npm-auth commande avec l’indicateur -F pour réauthentifier :
vsts-npm-auth -config .npmrc -F
Réinitialiser vsts-npm-auth
Procédez comme suit pour réinitialiser vos informations d’identification vsts-npm-auth :
Si vous rencontrez une erreur 403, cela peut indiquer un conflit de noms. Dans Azure Artifacts, les packages sont immuables, ce qui signifie qu’une fois que vous publiez un package sur votre flux, son numéro de version est réservé définitivement. Même si vous la supprimez, vous ne pouvez pas publier un nouveau package avec le même numéro de version. Pour résoudre ce problème, mettez à jour la version du package dans votre fichier package.json , puis réessayez.