Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
O Azure Artifacts permite que os desenvolvedores gerenciem pacotes de várias fontes, incluindo registros públicos, como npmjs.com e feeds privados. Para autenticar com o Azure Artifacts, você precisa configurar o arquivo de configuração do npmrc . Esse arquivo armazena as URLs de feed e as credenciais usadas pelo npm e permite personalizar o comportamento do cliente, como configurar proxies, definir locais de pacote padrão ou configurar o acesso a feeds privados. O arquivo npmrc normalmente está localizado no diretório base do usuário, mas também pode ser criado no nível do projeto para substituir as configurações padrão.
Pré-requisitos
Conectar-se a um feed
O Azure Artifacts recomenda o uso de dois arquivos de configuração .npmrc separados. Um deve ser armazenado localmente para armazenar suas credenciais, enquanto o outro deve ser adicionado ao diretório do projeto junto com seu package.json para definir a URL do feed. Essa abordagem permite que você compartilhe sua configuração no nível do projeto sem expor informações confidenciais.
Para configurar o arquivo de credenciais, crie ou atualize o arquivo .npmrc e inclua todas as credenciais necessárias do Registro. Isso permite que o cliente npm acesse facilmente suas credenciais para autenticação.
As etapas a seguir orientam você na configuração do arquivo de configuração no nível do projeto. Selecione a guia que corresponde ao seu ambiente de desenvolvimento:
Nota
vsts-npm-auth não tem suporte no Servidor do Azure DevOps.
Entre em sua organização do Azure DevOps e navegue até seu 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 .npmrc ao seu projeto, no mesmo diretório que o package.json e cole o snippet fornecido da seção de instalação do Project no arquivo.
Execute o seguinte comando para adicionar um token do Azure Artifacts ao arquivo .npmrc no nível do usuário. Você não precisa executar isso todas as vezes – o npm retornará um erro 401 Não autorizado quando for hora de atualizar o token.
vsts-npm-auth -config .npmrc
Entre em sua organização do Azure DevOps e navegue até seu 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 diretório do projeto. Esse deve ser o mesmo diretório em que o arquivo package.json está localizado.
Cole o snippet fornecido na seção de instalação do Project no arquivo .npmrc . Seu arquivo deve ser semelhante ao seguinte:
registry=https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
always-auth=true
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=[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 escopos de leitura e gravação de empacotamento.
Execute o comando a seguir em uma janela de prompt de comando. Quando solicitado, cole o PAT (token de acesso pessoal) e pressione Enter. O script retornará uma versão codificada em Base64 do PAT, copiará esse valor para usar na próxima etapa.
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(); })"
Nota
A partir de julho de 2024, os PATs (Tokens de Acesso Pessoal) do Azure DevOps têm 82 caracteres. Algumas ferramentas podem inserir quebras de linha automáticas ao codificar tokens em Base64. Para evitar isso, use o -w0 sinalizador com o comando base64 para garantir que a saída permaneça em uma única linha.
Neste tutorial, usamos o método Buffer do Node, que produz uma cadeia de caracteres Base64 de linha única por padrão.
Se você estiver usando Linux ou macOS, poderá executar o seguinte comando em seu terminal para converter seu PAT (token de acesso pessoal) em uma cadeia de caracteres codificada em Base64. Copie o valor resultante a ser usado na próxima etapa.
echo -n "YOUR_PERSONAL_ACCESS-TOKEN" | base64 -w0
Substitua os espaços reservados [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] no arquivo npmrc no nível do usuário pelo token de acesso pessoal codificado em Base64 gerado na etapa anterior.
Entre em sua coleção do Azure DevOps e navegue até seu projeto.
Selecione Artefatos, selecione o feed no menu suspenso e, em seguida, selecione Conectar ao feed.
Selecione npm à esquerda e siga as etapas na seção configuração do Projeto para configurar o arquivo npmrc e autenticar com o feed.
Entre em sua coleção do Azure DevOps e navegue até seu 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 no diretório do projeto, no mesmo diretório do arquivopackage.json e cole o snippet fornecido na seção de instalação do Project no arquivo npmrc . Seu arquivo deve ser semelhante ao seguinte:
registry=http://<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
always-auth=true
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 escopos de leitura e gravação de empacotamento.
Execute o comando a seguir em uma janela de prompt de comando. Quando solicitado, cole o token de acesso pessoal e pressione Enter. O script retornará uma versão codificada em Base64 do PAT, copiará esse valor para usar na próxima etapa.
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(); })"
Nota
A partir de julho de 2024, os PATs (Tokens de Acesso Pessoal) do Azure DevOps têm 82 caracteres. Algumas ferramentas podem inserir quebras de linha automáticas ao codificar tokens em Base64. Para evitar isso, use o -w0 sinalizador com o comando base64 para garantir que a saída permaneça em uma única linha.
Neste tutorial, usamos o método Buffer do Node, que produz uma cadeia de caracteres Base64 de linha única por padrão.
Substitua os marcadores de posição [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] no arquivo de nível de usuário .npmrc pelo token de acesso pessoal codificado em Base64 que você gerou na etapa anterior.
Conteúdo relacionado