Serviços Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Azure Artifacts usa o arquivo de configuração .npmrc para autenticar clientes npm com feeds. A configuração recomendada mantém a configuração do feed e as credenciais em dois arquivos .npmrc separados: um arquivo de nível de projeto (incluído no commit junto com o seu package.json) que armazena a URL do feed e um arquivo de nível de usuário (nunca commitado) que armazena suas credenciais.
Pré-requisitos
|
Produto |
Requisitos |
|
Azure DevOps |
- Uma organização do Azure DevOps. - Um projeto do Azure DevOps . - Um feed do Azure Artifacts. – Baixar Node.js e npm. |
Conectar-se a um feed
Selecione a guia que corresponde ao sistema operacional e siga as etapas para configurar seus arquivos .npmrc :
Nota
vsts-npm-auth não tem suporte no Servidor do Azure DevOps.
Entre na sua organização do Azure DevOps e vá para o projeto.
Selecione Artefatos e, em seguida, selecione o feed no menu suspenso.
Selecione Conectar ao feed e selecione npm no painel de navegação esquerdo.
Se você não instalou vsts-npm-auth, execute o seguinte comando:
npm install -g vsts-npm-auth --registry https://registry.npmjs.com --always-auth false
Adicione um arquivo .npmrc ao seu projeto no mesmo diretório que o seu package.json, e depois cole o trecho da seção Configuração do projeto no arquivo.
Execute o comando a seguir para adicionar um token ao seu arquivo .npmrc do usuário. o npm retorna um erro 401 Não autorizado quando o token expira— execute este comando novamente para atualizá-lo.
vsts-npm-auth -config .npmrc
Entre na sua organização do Azure DevOps e vá para o projeto.
Selecione Artefatos e, em seguida, selecione o feed no menu suspenso.
Selecione Conectar ao feed e selecione npm no painel de navegação esquerdo.
Adicione um arquivo .npmrc ao seu projeto no mesmo diretório que o seu package.json, e depois cole o trecho da seção Configuração do projeto no arquivo. Seu arquivo deve ser semelhante ao seguinte:
registry=https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
Credenciais de instalação
Copie o snippet a seguir e cole-o no arquivo npmrc no nível do usuário:
Feed da organização com escopo:
; 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
Feed do projeto com escopo:
; 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
Gere um token de acesso pessoal com escopo Packaging>Read & write.
Codificar o PAT em Base64 usando um dos seguintes métodos:
Node.js (todas as plataformas): execute o comando a seguir, insira seu PAT quando solicitado e copie o valor resultante.
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 ou Linux: execute o seguinte comando e copie a saída.
echo -n "YOUR_PERSONAL_ACCESS_TOKEN" | base64
Substitua os marcadores [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] no seu arquivo .npmrc de nível de usuário pelo valor codificado.
Entre em sua coleção do Azure DevOps e vá para o projeto.
Selecione Artefatos, selecione o feed no menu suspenso e, em seguida, selecione Conectar ao feed.
Selecione npm e, em seguida, siga as etapas na seção de instalação do Project para configurar o arquivo .npmrc e autenticar com o feed.
Entre em sua coleção do Azure DevOps e vá para o projeto.
Selecione Artefatos e, em seguida, selecione o feed no menu suspenso.
Selecione Conectar ao feed e selecione npm no painel de navegação esquerdo.
Adicione um arquivo .npmrc ao seu projeto no mesmo diretório que o seu package.json, e depois cole o trecho da seção Configuração do projeto no arquivo. Seu arquivo deve ser semelhante ao seguinte:
registry=http://<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
Credenciais de instalação
Copie o snippet a seguir e cole-o no arquivo .npmrc no nível do usuário:
Feed no escopo da coleção:
; 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
Feed do projeto com escopo:
; 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
Gere um token de acesso pessoal com escopo Packaging>Read & write.
Execute o comando a seguir, insira seu PAT quando solicitado e copie o valor codificado em Base64 resultante.
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(); })"
Substitua os marcadores [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] no seu arquivo .npmrc de nível de usuário pelo valor codificado.
Conteúdo relacionado