Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Azure Artifacts umožňuje vývojářům spravovat balíčky z různých zdrojů, včetně veřejných registrů, jako jsou npmjs.com i privátní informační kanály. Pokud se chcete ověřit pomocí Azure Artifacts, budete muset nakonfigurovat konfigurační soubor npm. Tento soubor obsahuje adresy URL informačního kanálu a přihlašovací údaje používané npm a nabízí možnosti přizpůsobení chování klienta npm, jako je nastavení proxy serverů, definování výchozích umístění balíčků nebo konfigurace kanálů privátních balíčků. Soubor .npmrc se obvykle nachází v domovském adresáři uživatele, ale lze ho vytvořit také na úrovni projektu a přepsat výchozí nastavení.
Azure Artifacts doporučuje používat dva samostatné konfigurační soubory. První je vyhrazená k ověřování pomocí Azure Artifacts, zatímco druhá by se měla uchovávat místně, aby se ukládaly vaše přihlašovací údaje. Tento přístup umožňuje sdílet konfigurační soubor při zachování zabezpečení přihlašovacích údajů.
Pokud chcete nastavit druhý soubor, jednoduše ho umístěte do domovského adresáře na vývojovém počítači a zahrňte všechny přihlašovací údaje registru. To umožňuje klientovi npm snadno přistupovat k vašim přihlašovacím údajům pro ověřování.
Následující kroky vás provedou nastavením prvního konfiguračního souboru:
Zkopírujte následující fragment kódu a vložte ho do souboru npmrc na úrovni uživatele:
Informační kanál s oborem organizace:
; 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
Informační kanál s oborem 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
V okně příkazového řádku spusťte následující příkaz a po zobrazení výzvy vložte váš osobní přístupový token. Po dokončení zkopírujte vygenerovanou hodnotu s kódováním Base 64.
Pokud používáte Linux nebo Mac, můžete případně pomocí následujícího příkazu převést osobní přístupový token na Base 64. Zkopírujte výslednou hodnotu s kódováním Base64.
echo -n "YOUR_PERSONAL_ACCESS-TOKEN" | base64
Zástupné symboly [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] v souboru .npmrc uživatele nahraďte zakódovaným osobním přístupovým tokenem získaným z předchozího kroku.
Zkopírujte následující fragment kódu a vložte ho do souboru .npmrc na úrovni uživatele:
Informační kanál s vymezeným oborem kolekce:
; 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
Informační kanál s oborem 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
V okně příkazového řádku spusťte následující příkaz a po zobrazení výzvy vložte váš osobní přístupový token. Po dokončení zkopírujte vygenerovanou hodnotu s kódováním Base 64.
Zkopírujte následující fragment kódu a vložte ho do souboru .npmrc na úrovni uživatele:
Informační kanál s vymezeným oborem kolekce:
; 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
Informační kanál s oborem 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
V okně příkazového řádku spusťte následující příkaz a po zobrazení výzvy vložte váš osobní přístupový token. Po dokončení zkopírujte vygenerovanou hodnotu s kódováním Base 64.
K ověření pomocí kanálu azure Artifacts doporučuje použít úlohu ověření npm.
Při použití spouštěčů úloh, jako je gulp nebo Grunt, je nastavit prioritu nastavení úlohy ověření npm na začátku kanálu. Tento krok zaručuje, že se vaše přihlašovací údaje vloží do souboru .npmrc vašeho projektu a zachovají se v průběhu spuštění kanálu a umožní následným krokům přístup k přihlašovacím údajům v konfiguračním souboru.
Přejděte do projektu, vyberte Kanály a pak vyberte definici kanálu.
Vyberte Upravit a upravte kanál.
Vyberte + , pokud chcete do kanálu přidat novou úlohu.
Přejděte do projektu, vyberte Buildy> kanálů a pak vyberte definici sestavení.
Vyberte Upravit a upravte kanál buildu.
Vyberte + , pokud chcete do kanálu buildu přidat novou úlohu.
Vyhledejte úlohu npm Authenticate a pak vyberte Přidat.
Vyberte soubor .npmrc a po dokončení vyberte Uložit a frontu.
- 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
Poznámka:
Pokud chcete získat přístup k informačnímu kanálu z kanálu, ujistěte se, že je role služby sestavení nastavená na Oprávnění k nastavení informačního> kanálu a čtenář upstreamu (přispěvatel).
Poznámka:
Pokud vaše organizace používá bránu firewall nebo proxy server, ujistěte se, že povolíte příslušné adresy URL domény. Podrobnosti najdete v tématu Povolené IP adresy a adresy URL domény.
Odstraňování potíží
Vsts-npm-auth se nerozpozná
Tato chyba značí, že složka modulů npm nebyla přidána do vaší cesty. Spusťte znovu nastavení Node.js a nezapomeňte vybrat Add to PATH možnost. Případně můžete do cesty přidat složku modulů npm úpravou proměnné PATH na %APPDATA%\npm příkazový řádek nebo $env:APPDATA\npm v PowerShellu.
Nejde ověřit
Chyba: kód E401 npm ERR! Nejde ověřit: Spusťte> vsts-npm-auth příkaz s příznakem -F , který se má znovu ověřit:
vsts-npm-auth -config .npmrc -F
Resetování ověřování vsts-npm-auth
Při resetování přihlašovacích údajů vsts-npm-auth postupujte takto:
Pokud dojde k chybě 403, může to znamenat konflikt názvů. V Azure Artifacts jsou balíčky neměnné, což znamená, že po publikování balíčku do informačního kanálu je jeho číslo verze trvale rezervované. I když ho odstraníte, nemůžete publikovat nový balíček se stejným číslem verze. Pokud chcete tento problém vyřešit, aktualizujte verzi balíčku v souboru package.json a zkuste to znovu.