0

这个问题包括一个特定的用例:

  1. 我有一个私有作用域包:@myscope/mypackage
  2. 它托管在 Artifactory NPM 注册表中:https://company.jfrog.io/artifactory/api/npm/my-npm-registry/
  3. 我需要使用我的凭据来使用它。
  4. 我想在 Github Actions 中使用它。

我怎样才能做到这一点?

4

1 回答 1

0

.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 密钥。

  1. 从您的 Artifactory 配置文件中获取您的Artifactory API 密钥: https ://company.jfrog.io/ui/admin/artifactory/user_profile
  2. 在 Linux 终端上运行下一个命令: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/
      
  3. 你应该收到这个:
    _auth = {{ YOUR_NPM_TOKEN }}
    always-auth = true
    
  4. 所以现在你可以把这个 Token 放到上面的.npmrc文件中。

Github 操作

如何在 Github Actions 中完成这一切?

  1. 首先,将您的 Jfrog 用户名和 API Key 保存在 Github Secrets: JFROG_USER&JFROG_PAT中。
  2. 您可以在结帐之后和之前 将下一步添加到您的工作流程中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
    
于 2022-01-18T17:26:42.443 回答