Ionic GitHub操作访问私有存储库

z18hc3ub  于 2022-12-08  发布在  Ionic
关注(0)|答案(2)|浏览(193)

我想运行我的节点/离子项目的CI部分,我昨天刚刚添加了一个自定义电容器插件- repo A。
此插件位于存储库B中。
在我的开发机器上,我将B添加为

npm install https://PERSONAL_ACCESS_TOKEN@github.com/ME/B.git --save

项目A。
package.json现在包含

"B": "git+https://PERSONAL_ACCESS_TOKEN@github.com/ME/B.git",

并且我将其推送到我当前的合并请求。但是,CI管道现在告诉我:

npm install
  shell: /usr/bin/bash -e {0}
npm ERR! Error while executing:
npm ERR! /usr/bin/git ls-remote -h -t https://***@github.com/ME/B.git
npm ERR! 
npm ERR! remote: Repository not found.
npm ERR! fatal: repository 'https://github.com/ME/B.git/' not found
npm ERR!

项目B是一个私人回购。我的帐户拥有这两个回购,我正在使用我新创建的个人访问令牌。
我应该检查什么?我可以在我的本地上拉repo,但是我在那里也设置了我的git+ssh env凭据,所以它可能会因为这个工作...

g0czyy6m

g0czyy6m1#

请先确认您是否需要GitHub用户名:

https://myGitHubUsername:PERSONAL_ACCESS_TOKEN@github.com/ME/B.git
         ^^^^^^^^^^^^^^^^^

然后,如果您需要git+https URL中的令牌:
"How to use private GitHub repo as npm dependency"提到使用npm-cli-login来代替:

- name: Login to GitHub private NPM registry
  env:
    CI_ACCESS_TOKEN: ${{ secrets.NAME_OF_YOUR_ACCESS_TOKEN_SECRET }}
  shell: bash
  run: |
    npm install -g npm-cli-login
    npm-cli-login -u "USERNAME" -p "${CI_ACCESS_TOKEN}" -e "EMAIL" -r "https://npm.pkg.github.com" -s "@SCOPE"
fsi0uk1n

fsi0uk1n2#

大多数答案,我已经看到安装私人GitHub repo

"package": "git+https://PERSONAL_ACCESS_TOKEN:x-oauth-basic@github.com/username/packge.git"

"package": "https://PERSONAL_ACCESS_TOKEN:x-oauth-basic@github.com/username/packge.git"

这在本地是有效的,但是,如果你在github Action中使用actions/checkout@v2,那么你需要像下面这样使用persist-credentials:false

- uses: actions/checkout@v2
  with:
    persist-credentials: false

否则,您将收到错误消息remote: Repository not found.

安装私有github回购协议的其他方式

如果您使用ssh,如下所示

"package": "git+ssh://git@github.com/username/packge.git"

那么你必须在github操作中使用ssh-agent,如下所示

- uses: webfactory/ssh-agent@v0.5.4
  with:
      ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}

在这里SSH_PRIVATE_KEY是一个专用密钥从公共-专用密钥对产生使用ssh-keygen和公共密钥是添加作为一个部署密钥在这私人repo你正试图安装作为一个npm包.为更多的信息关于这,你能检查这官方doc

相关问题