我在让jenkins进行composer更新时遇到了一些问题,因为composer依赖项之一是托管在Github 上的私有git repo
我也遇到了让composer update命令在命令行中工作的问题:
$ cd /var/lib/jenkins/jobs/JOB/workspace
$ ls -la auth.json
-rw-rw-r-- 1 jenkins jenkins 99 Aug 3 15:49 auth.json
$ cat auth.json
{
"github-oauth" : {
"github.com" : "<notAvailableOnSO>"
}
}
$ composer update -n
错误:
Failed to clone the git@github.com:<Org>/<Project>.git repository, try running in interactive mode so that you can enter your GitHub credentials
[RuntimeException]
Failed to execute git clone --mirror 'https://***:***@github.com/<Org>/<Project>.git' '/var/lib/jenkins/.composer/cache/vcs/git-github.com-<Org>-<Project>.git/'
Cloning into bare repository '/var/lib/jenkins/.composer/cache/vcs/git-github.com-<Org>-<Project>.git'...
remote: Repository not found.
fatal: repository 'https://***:***@github.com/<Org>/<Project>.git/' not found
我试图更新的项目在其composer.json:中有这个存储库设置
"repositories": [
{
"type": "vcs",
"url": "https://github.com/<Org>/<Project>.git"
}
]
即使没有-n(交互模式),我也可以输入githuboauth令牌,并让composer报告令牌已保存,但仍然会收到错误。
我是把auth.json放错地方了,还是应该用不同的方式进行授权?
(显然不可能为了部署工作而在github上发布专有源代码)
我使用了"composer update"命令(命令行和通过jenkins)。
在实际阅读了错误消息并了解到存储库对用户不可用后,登录github,我通过确保github用户实际上被允许对存储库进行读取访问来解决我的问题。
:)