У меня есть приложение, для которого я создаю конвейер сборки в Azure DevOps. Он использует npm пакеты, которые находятся в частном реестре npm (с кодом, созданным из другой организации Azure DevOps). Когда я запускаю npm ci
(или npm install
), происходит сбой со следующей ошибкой:
npm ERR! код E401
npm ERR! Невозможно подтвердить подлинность, необходимо: Bearer authorization_uri = https://login.windows.net/b2d01466-6e2c-4b55-8b90-e3ed41afca4a, Basi c realm = "https://pkgsproduks1.pkgs.visualstudio.com/", TFS-Federated
Специфические c пакеты, которые сбой - это ошибки из другой организации, которые возвращают 401
при попытке их получить.
Я подумал, что лучшая практика для аутентификации это было бы создать сервисное соединение в Azure DevOps. Я создал токен личного доступа в организации, в котором размещены пакеты npm, и использовал его для создания служебного соединения в организации, содержащей мой конвейер сборки. Затем я включил его в свой сборочный конвейер yaml следующим образом:
- task: Npm@1
displayName: Install npm packages
inputs:
command: 'ci'
workingDir: 'Path/To/Working/Directory'
customEndpoint: 'Custom npm registry'
Я также пытался использовать шаг сборки npm authenticate
до этого (как с customEndpoint: 'Custom npm registry'
на этапе установки, так и без него) и хотя npm authenticate
работает успешно, это не имеет никакого значения для ошибки, которую я получаю. Я также пытался настроить Service Connection, чтобы использовать мое имя пользователя и пароль, а не PAT, но это тоже не имело значения.
* * * * * * * * * * * * * * * * * * * .npmrc
в моем проекте выглядит следующим образом (слегка изменено):
registry=https://registry.npmjs.org/
@{scope}:registry=https://pkgs.dev.azure.com/{organisation}/_packaging/{feedName}/npm/registry/
@{scope}:always-auth=true
Может кто-нибудь увидеть, что не так с аутентификацией, или ссылку на статью, в которой приведен пример этого в нескольких Azure организациях DevOps?