gpt4 book ai didi

Github 操作,使用 npm 或 yarn 安装 Github 包时出现 401 未授权

转载 作者:行者123 更新时间:2023-12-03 15:10:42 30 4
gpt4 key购买 nike

当我尝试安装我的 npm来自 GitHub 操作的模块我收到以下错误:

npm ERR! 401 Unauthorized - GET https://npm.pkg.github.com/@xxxx%2fxxxx-analytics - Your request could not be authenticated by the GitHub Packages service. Please ensure your access token is valid and has the appropriate scopes configured.
在您发表评论之前,我已经使用范围和访问 token 正确配置了 .npmrc,并且在本地安装私有(private)包时一切正常。
这是我的 GitHub 工作流程操作:
name: JavaScript workflow

on: [push]

jobs:
test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v1
- name: Use Node.js 12.x
uses: actions/setup-node@v1
with:
node-version: '12.x'
- name: npmrc
run: cat .npmrc
- name: npm install
run: |
npm install
env:
CI: true
NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}

这是我的 .npmrc
@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken=XXXXXXXXX
@colonynetworks:registry=https://npm.pkg.github.com
//npm.pkg.github.com:_authToken=XXXXXXXXX
always-auth=true
@react-admin:registry=https://registry.marmelab.com
//registry.marmelab.com:
_auth=XXXXXXXXX
email=software@XXXXXXXXX.com
always-auth=true

这是一个私有(private)仓库,authTokens 当前被硬编码在 .npmrc 文件中。
然而,在尝试解决这个问题时,我确实从 Github 工作人员那里看到了这条随机评论: https://github.community/t/netlify-getting-401-from-github-package-registry-with-auth-token/16415/3
这有点含糊,但听起来它不接受 .npmrc 文件中的硬编码 authToken 。
所以我尝试的第一件事是使用我们的环境变量,而不是像这样:
@xxxx=https://npm.pkg.github.com
//npm.pkg.github.com:_authToken=${NPM_AUTH_TOKEN}

env 变量在我们的 Github 存储库 secret 中是正确的,并由工作流提供。
但是,这仍然导致相同的 401 Unauthorized 错误。
通过查看其他解决方案,我尝试在 install 之前的 Github 操作中手动生成 .npmrc步骤,像这样:
- name: npmrcgen
run: |
echo "//npm.pkg.github.com/:_authToken=XXXXXXX" > .npmrc
echo "@xxxxx=https://npm.pkg.github.com/" >> .npmrc
echo "@react-admin:registry=https://registry.marmelab.com" >> .npmrc
echo "//registry.marmelab.com:" >> .npmrc
echo "_auth=XXXXXXX" >> .npmrc
echo "email=software@xxxxx.com" >> .npmrc
echo "always-auth=true" >> .npmrc
在我添加的日志记录步骤中,_authToken(仅适用于 Github)仍然显示为 *** ,我仍然收到 401 Unauthorized 错误。
此时我想确认 .npmrc 甚至被使用,所以我删除了我们用于 marmelab.com 的第二个私有(private)注册表。 ,果然,我得到一个错误,说它不再能够安装他们的 ra-realtime包裹。这证明 .npmrc 文件确实被我的 Github 操作读取和使用,但它不接受我的 Github 个人访问 token 。
我也尝试生成一个新 token 。它可以完全访问 repo: 下的所有内容以及 write:packagesread:packages这是应该要求的。
在 Github 操作中仍然 401 Unauthorized,并且在本地仍然可以正常工作。
最后我尝试用 yarn 安装它而不是 npm .不出所料,这也没有解决它。
我已经看到并尝试了以下解决方案,但没有成功:
  • Download private module from Github Package Registry via Yarn within a Github Action? Publishing works, but installing is met with '401 Unauthorized'
  • https://github.com/FerLuisxd/create-npmrc
  • https://blog.bitsrc.io/install-npm-private-packages-in-ci-cd-with-github-actions-746db95017cc

  • 一件事我没有尝试过,因为我没有看到关于如何或这是一个好主意的建议,但我还没有做过 npm login在 Github 操作中。由于没有其他人这样做,并且以某种方式使其工作,我认为这没有必要。

    最佳答案

    我联系了 GitHub 支持,他们设法找出问题所在。
    Github 工作流程比本地环境更严格,需要额外的 /在身份验证 token 之前:
    指出不同:

    //npm.pkg.github.com:_authToken=XXXXXXXXX. # broken
    //npm.pkg.github.com/:_authToken=XXXXXXXXX # works
    添加额外的 /之前 :_authToken=为我解决了这个问题。

    关于Github 操作,使用 npm 或 yarn 安装 Github 包时出现 401 未授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64124831/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com