这个问题包括一个特定的用例:
- 我有一个私有作用域包:
@myscope/mypackage
- 它托管在 Artifactory NPM 注册表中:
https://company.jfrog.io/artifactory/api/npm/my-npm-registry/
- 我需要使用我的凭据来使用它。
- 我想在 Github Actions 中使用它。
我怎样才能做到这一点?
这个问题包括一个特定的用例:
@myscope/mypackage
https://company.jfrog.io/artifactory/api/npm/my-npm-registry/
我怎样才能做到这一点?
.npmrc
首先,您需要在本地.npmrc
文件中配置您的访问权限。您可以将此文件放在源根文件夹中。
always-auth = true
# First, set a different registry URL for your scope
@myscope:registry=https://company.jfrog.io/artifactory/api/npm/my-npm-registry/
# Then, for this scope, you need to set the token
//company.jfrog.io/artifactory/api/npm/my-npm-registry/:_auth = {{your token - see below}}
您需要从 Artifactory 获取 NPM 令牌(注意它不是您的 API 密钥。
curl -u {{ ARTIFACTORY_USERNAME }}:{{ ARTIFACTORY_API_KEY }} https://company.jfrog.io/artifactory/api/npm/auth/
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f {{ ARTIFACTORY_USERNAME }},{{ ARTIFACTORY_API_KEY }})))
Invoke-RestMethod -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} https://company.jfrog.io/artifactory/api/npm/auth/
_auth = {{ YOUR_NPM_TOKEN }}
always-auth = true
.npmrc
文件中。如何在 Github Actions 中完成这一切?
JFROG_USER
&JFROG_PAT
中。yarn/npm install
:
- name: npm token
run: |
echo "@myscope:registry=https://company.jfrog.io/artifactory/api/npm/my-npm-registry/" > .npmrc
echo "//company.jfrog.io/artifactory/api/npm/my-npm-registry/:$(curl -u ${{ secrets.JFROG_USER }}:${{ secrets.JFROG_PAT }} https://company.jfrog.io/artifactory/api/npm/auth/)" >> .npmrc