我正在中设置一些NodeJS项目的CI构建。目前,我有四个项目正在从私有Github存储库中克隆,运行npm install
和运行单元测试。因为我给VS Team Services构建了一个用于它克隆的存储库的访问令牌,所以这些构建都是通过的。
第五个项目依赖于其他四个项目中的一个作为package.json
中的依赖项。当试图克隆私有存储库时,此项目的构建在npm install
上失败,因为构建没有复制存储库的权限。如何在npm install
期间授予此构建访问权限来克隆我们的私有存储库
我对这五个项目中的每个项目都有一个构建定义,每个项目都是my-org
上的一个单独的存储库。在每个构建定义中,到Github的连接由个人访问令牌管理,存储库指向my-org/project-name
。第五个项目的package.json
文件(失败)构建了一个dependencies
配置,如下所示:
"dependencies": {
"project-name": "git+ssh://git@github.com/my-org/project-name.git#master",
"jquery": "^2.2.4",
"react": "^15.0.1",
"react-dom": "^15.0.1"
}
第一个图像显示了构建定义的npm install
步骤。
第二个图像显示了我的构建定义的npm test
步骤。
发布于 2017-02-18 19:40:50
问题是,由于构建代理上缺少SSH密钥,并且主机验证无论如何都会失败,构建代理将无法进行身份验证。
相反,您应该在个人存取令牌 on GitHub上创建一个只有“repo”的作用域,然后在您的packages.json文件中使用它(注意ssh
被https
协议取代):
"project-name": "git+https://<user>:<token>@github.com/my-org/project-name.git#master",
发布于 2019-09-08 03:55:15
最近,我需要在基于Windows的代理上的Azure中这样做,而不是将依赖项更改为在packages.json中包含用户和令牌,而是创建一个构建步骤,将环境变量中的身份验证信息添加到windows凭据存储中,并指示git使用该步骤。
git config --global credential.helper wincred
cmdkey /generic:LegacyGeneric:target=git:https://our-private-domain.com /user:git-readonly-use@our-private-domain.com /pass:"Personal Access Token With Read Permissions"
在添加这些配置之后,Npm安装了我们在源代码中使用的脚本,没有出现任何问题。
"dependencies": {
"example-1": "git+https://our-private-domain.com/proj/example-1.git#v0.1.9",
"example-2": "git+https://our-private-domain.com/proj/example-2.git#master"
}
https://stackoverflow.com/questions/42284213
复制相似问题