Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
O Azure Artifacts permite que os desenvolvedores gerenciem seus pacotes de várias fontes, incluindo registros públicos, como npmjs.com e feeds privados. Para autenticar com os Artefatos do Azure, você precisará configurar seu arquivo de configuração npm. Esse arquivo contém URLs de feed e credenciais usadas pelo npm, oferecendo opções para personalizar o comportamento do cliente npm, como configurar proxies, definir locais de pacote padrão ou configurar feeds de pacotes 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.
O Azure Artifacts recomenda o uso de dois arquivos de configuração separados. O primeiro é dedicado à autenticação com Artefatos do Azure, enquanto o segundo deve ser mantido localmente para armazenar suas credenciais. Essa abordagem permite que você compartilhe seu arquivo de configuração, mantendo suas credenciais seguras.
Para configurar o segundo arquivo, basta colocá-lo em seu diretório pessoal em sua máquina de desenvolvimento e incluir todas as suas credenciais de registro. Isso permite que o cliente npm acesse facilmente suas credenciais para autenticação.
As etapas a seguir irão guiá-lo durante a configuração do primeiro arquivo de configuração:
Observação
vsts-npm-auth não tem suporte no Servidor de DevOps do Azure.
Entre na sua organização do Azure DevOps e navegue até seu projeto.
Selecione Artefatos e, em seguida, selecione Conectar ao Feed.
Selecione npm na barra lateral esquerda. Se esta for a primeira vez que você usa o Azure Artifacts com npm, verifique se você instalou os pré-requisitos.
Siga as instruções na seção Configuração do projeto para se conectar ao seu feed.
Adicione um arquivo .npmrc no diretório do projeto, no mesmo diretório que o arquivo package.json , e cole o seguinte trecho nele.
Copie o seguinte trecho e cole-o no arquivo npmrc no nível do usuário:
Feed com escopo da organização:
; 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 com escopo do projeto:
; 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 seguinte comando em uma janela de prompt de comando e cole seu token de acesso pessoal quando solicitado. Uma vez feito, copie o valor codificado Base 64 gerado.
Se você estiver no Linux/Mac, você pode alternativamente usar o seguinte comando para converter seu token de acesso pessoal para Base 64. Copie o valor codificado Base64 resultante.
echo -n "YOUR_PERSONAL_ACCESS-TOKEN" | base64
Substitua os espaços reservados [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] no arquivo .npmrc do usuário pelo token de acesso pessoal codificado obtido na etapa anterior.
Copie o seguinte trecho e cole-o no arquivo .npmrc no nível do usuário:
Feed com escopo de 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 com escopo do projeto:
; 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 seguinte comando em uma janela de prompt de comando e cole seu token de acesso pessoal quando solicitado. Uma vez feito, copie o valor codificado Base 64 gerado.
Substitua os espaços reservados [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] no arquivo .npmrc do usuário pelo token de acesso pessoal codificado obtido na etapa anterior.
Copie o seguinte trecho e cole-o no arquivo .npmrc no nível do usuário:
Feed com escopo de 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 com escopo do projeto:
; 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 seguinte comando em uma janela de prompt de comando e cole seu token de acesso pessoal quando solicitado. Uma vez feito, copie o valor codificado Base 64 gerado.
Substitua os espaços reservados [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] no arquivo .npmrc do usuário pelo token de acesso pessoal codificado obtido na etapa anterior.
Entre na sua coleção do Azure DevOps e navegue até seu projeto.
Selecione Artefatos e, em seguida, selecione Conectar ao feed.
Uma nova janela será exibida. No painel de navegação à esquerda, selecione npm.
Siga as instruções fornecidas para configurar o projeto e os arquivos .npmrc do usuário .
Dica
O uso de vários registros em arquivos .npmrc é suportado com escopos e fontes upstream.
Autenticação de pipeline
Para autenticar com seu pipeline, o Azure Artifacts recomenda o uso da tarefa de autenticação npm.
Ao usar executores de tarefas, como gulp ou Grunt, é para priorizar a configuração da tarefa de autenticação npm no início do pipeline. Esta etapa garante que suas credenciais sejam injetadas no arquivo .npmrc do projeto e retidas durante toda a execução do pipeline, permitindo que as etapas subsequentes acessem as credenciais no arquivo de configuração.
Navegue até o projeto, selecione Pipelines e selecione sua definição de pipeline.
Selecione Editar para modificar o pipeline.
Selecione + esta opção para adicionar uma nova tarefa ao pipeline.
Navegue até o projeto, selecione Pipelines Builds e selecione sua definição de>compilação.
Selecione Editar para modificar o pipeline de compilação.
Selecione + esta opção para adicionar uma nova tarefa ao pipeline de compilação.
Procure a tarefa npm Autenticar e selecione Adicionar.
Selecione o arquivo .npmrc e selecione Salvar fila & quando terminar.
- 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
Observação
Para acessar seu feed a partir do pipeline, verifique se a função de serviço de compilação está definida como Feed And Upstream Reader (Colaborador) nas configurações >de Feed Permissions.
Observação
Se sua organização estiver usando um firewall ou um servidor proxy, certifique-se de permitir as URLs de domínio apropriadas. Consulte Endereços IP permitidos e URLs de domínio para obter detalhes.
Solucionar problemas
vsts-npm-auth não é reconhecido
Esse erro indica que a pasta npm modules não foi adicionada ao seu caminho. Execute novamente a configuração do Node.js e certifique-se de selecionar a Add to PATH opção. Como alternativa, você pode adicionar a pasta npm modules ao seu caminho modificando a variável PATH para %APPDATA%\npm no Prompt de Comando ou $env:APPDATA\npm no PowerShell.
Não é possível autenticar
Erro: código E401 npm ERR! Não é possível autenticar: -> Execute o comando com o vsts-npm-auth sinalizador -F para autenticar novamente:
vsts-npm-auth -config .npmrc -F
Redefinir vsts-npm-auth
Siga estas etapas para redefinir suas credenciais vsts-npm-auth:
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulte https://aka.ms/ContentUserFeedback.