[英]How to install npm pckage from private git repoistory using a token in github actions
I'm trying to install npm packages for my application within a Dockerfile.我正在尝试在 Dockerfile 中为我的应用程序安装 npm 包。 However, I get the following error when it comes to installing a package from a private git repository.
但是,在从私有 git 存储库安装 package 时出现以下错误。
Step 9/10 : RUN npm ci
---> Running in 57960fe4df81
npm ERR! Error while executing:
npm ERR! /usr/bin/git ls-remote -h -t ***github.com/<redacted-private-org>/<redacted-private-repo>.git
npm ERR!
npm ERR! remote: Repository not found.
npm ERR! fatal: repository 'https://github.com/<redacted-private-org>/<redacted-private-repo>.git/' not found
npm ERR!
npm ERR! exited with error code: 128
Dockerfile Dockerfile
FROM node:12.18.0-alpine3.10
RUN apk update && apk upgrade && \
apk add --no-cache bash git openssh
RUN mkdir -p /home/dev
WORKDIR /home/dev
COPY . /home/dev
RUN npm ci
CMD ["node", "api/api.js"]
package.json package.json
{
"name": "api",
"version": "0.1.0",
"author": "me",
"license": "",
"scripts": {
"prestart": "",
"start": "NODE_ENV=development nodemon ./api/server.js",
},
"dependencies": {
"bcrypt-nodejs": "^0.0.3",
"body-parser": "^1.18.2",
"org-common-utils": "git+https://<redacted-username>:<redacted-token>@github.com/<redacted-private-org>/<redacted-private-repo>.git",
"cors": "^2.8.4",
"dotenv": "^8.2.0",
"express": "^4.16.3",
"express-routes-mapper": "^1.1.0",
"helmet": "^3.12.0",
"igdb-api-node": "^3.1.7",
"jsonwebtoken": "^8.2.1",
"mysql": "^2.16.0",
"mysql2": "^1.6.4",
"node-cache": "^4.2.0",
"sequelize": "^5.21.3",
"sqlite3": "^4.0.0",
},
"devDependencies": {
"cross-env": "^5.1.4",
"eslint": "^4.19.1",
"eslint-config-airbnb-base": "^12.1.0",
"eslint-plugin-import": "^2.18.0",
"husky": "^0.14.3",
"jest": "^22.4.3",
"nodemon": "^1.17.3",
"shx": "^0.2.2",
"supertest": "^3.0.0"
}
}
To install from a private Github repository I'm using a username and token combination as you can see in my package.json.要从私有 Github 存储库安装,我使用的是用户名和令牌组合,如您在我的 package.json 中所见。
The repository exists because if I try to navigate to the URL it loads when I'm logged in https://github.com/redacted-private-org/redacted-private-repo存储库存在是因为如果我尝试导航到 URL 它会在我登录https://github.com/redacted-private-org/redacted-private-repo时加载
This issue is only occurring in github actions pipeline.此问题仅发生在 github 操作管道中。
This issue was only occurring in github actions pipeline.此问题仅发生在 github 操作管道中。 It's solved by setting
persist-credentials
to false otherwise it uses github actions token which does not have the necessary permissions to pull/install the repository.它通过将
persist-credentials
设置为false 来解决,否则它使用github 操作令牌,该令牌没有拉取/安装存储库的必要权限。 . .
- name: Checkout
uses: actions/checkout@master
with:
persist-credentials: false
https://github.com/actions/checkout https://github.com/actions/checkout
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.