Usługi Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Azure Artifacts używa pliku konfiguracji npmrc do uwierzytelniania klientów npm za pomocą źródeł danych. Zalecana konfiguracja przechowuje konfigurację kanału informacyjnego i poświadczenia w dwóch oddzielnych plikach npmrc : plik na poziomie projektu (zaewidencjonowany obok package.json) przechowujący adres URL kanału informacyjnego oraz plik na poziomie użytkownika (nigdy nie zatwierdzony) przechowujący poświadczenia.
Wymagania wstępne
|
produkt |
Wymagania |
|
Azure DevOps |
— Organizacja usługi Azure DevOps . — Projekt usługi Azure DevOps . — Źródło danych usługi Azure Artifacts . - Pobierz Node.js i npm. |
Połącz się z kanałem
Wybierz kartę zgodną z systemem operacyjnym i wykonaj kroki konfigurowania plików npmrc :
Uwaga
vsts-npm-auth nie jest obsługiwany w usłudze Azure DevOps Server.
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz swój kanał z menu rozwijanego.
Wybierz pozycję Połącz z kanałem informacyjnym, a następnie wybierz pozycję npm w okienku nawigacji po lewej stronie.
Jeśli nie zainstalowano vsts-npm-auth, uruchom następujące polecenie:
npm install -g vsts-npm-auth --registry https://registry.npmjs.com --always-auth false
Dodaj plik .npmrc do swojego projektu w tym samym katalogu, co package.json, a następnie wklej do niego fragment z sekcji Konfiguracja projektu.
Uruchom następujące polecenie, aby dodać token do pliku npmrc na poziomie użytkownika. Narzędzie npm zwraca błąd 401 Brak autoryzacji po wygaśnięciu tokenu — uruchom to polecenie ponownie, aby go odświeżyć.
vsts-npm-auth -config .npmrc
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz swój kanał z menu rozwijanego.
Wybierz pozycję Połącz z kanałem informacyjnym, a następnie wybierz pozycję npm w okienku nawigacji po lewej stronie.
Dodaj plik .npmrc do swojego projektu w tym samym katalogu, co package.json, a następnie wklej do niego fragment z sekcji Konfiguracja projektu. Plik powinien wyglądać podobnie do następującego:
registry=https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
Konfigurowanie poświadczeń
Skopiuj następujący fragment kodu i wklej go do pliku npmrc:
Kanał informacyjny na potrzeby organizacji
; 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=[ENTER_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
Kanał informacyjny w zakresie projektu:
; 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
Wygeneruj osobisty token dostępu z zakresem Packaging>.
Zakoduj swój PAT w formacie Base64, używając jednej z następujących metod:
Node.js (wszystkie platformy): uruchom następujące polecenie, wprowadź swój identyfikator dostępu po wyświetleniu monitu i skopiuj wynikowe wartości.
node -e "require('readline') .createInterface({input:process.stdin,output:process.stdout,historySize:0}) .question('PAT> ',p => { b64=Buffer.from(p.trim()).toString('base64');console.log(b64);process.exit(); })"
macOS lub Linux: uruchom następujące polecenie i skopiuj dane wyjściowe.
echo -n "YOUR_PERSONAL_ACCESS_TOKEN" | base64
Zastąp [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] symbole zastępcze w pliku npmrc na poziomie użytkownika wartością zakodowaną.
Zaloguj się do kolekcji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Artifacts, wybierz źródło danych z menu rozwijanego, a następnie wybierz pozycję Connect to feed.
Wybierz npm, a następnie wykonaj kroki opisane w sekcji Konfiguracja projektu, aby skonfigurować plik .npmrc i uwierzytelnić się względem swojego źródła danych.
Zaloguj się do kolekcji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz swój kanał z menu rozwijanego.
Wybierz pozycję Połącz z kanałem informacyjnym, a następnie wybierz pozycję npm w okienku nawigacji po lewej stronie.
Dodaj plik .npmrc do swojego projektu w tym samym katalogu, co package.json, a następnie wklej do niego fragment z sekcji Konfiguracja projektu. Plik powinien wyglądać podobnie do następującego:
registry=http://<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
Konfigurowanie poświadczeń
Skopiuj następujący fragment kodu i wklej go do pliku .npmrc:
Źródło danych o zakresie kolekcji:
; 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
Kanał informacyjny w zakresie projektu:
; 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
Wygeneruj osobisty token dostępu z zakresem Packaging>.
Uruchom następujące polecenie, wprowadź swój PAT, gdy pojawi się monit, a następnie skopiuj wynikową wartość zakodowaną w formacie Base64.
node -e "require('readline') .createInterface({input:process.stdin,output:process.stdout,historySize:0}) .question('PAT> ',p => { b64=Buffer.from(p.trim()).toString('base64');console.log(b64);process.exit(); })"
Zastąp [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] symbole zastępcze w pliku npmrc na poziomie użytkownika wartością zakodowaną.
Powiązana zawartość