我在github上设置了一个satis存储库,以便跨项目共享一些公司内部包。
现在,当我尝试"依赖"在新的存储库中,我尝试了这个:
"repositories": [ {
"type": "composer",
"url": "https://raw.githubusercontent.com/[organisation]/satis/master/web/packages.json?token=[token-copied-from-url]"
} ]
并且它的作用足够远,以至于composer找到了package.json,然后它失败了:
[Composer\Downloader\TransportException]
The "https://raw.githubusercontent.com/[organization]/satis/master/web/packages.json?token=[token-copied-from-url]/include/all$[some-json-file].json" file could not be downloaded (HTTP/1.1 404 Not Found)
这并不令人惊讶,因为?令牌部分似乎会生成无效的网址。
我可以通过手动将包含文件的内容直接移动到packages.json来解决这个问题,但这不太理想,特别是如果满意地决定生成多个文件。
我认为这会导致另一个问题是我对令牌的有效性了解不多。也许它没有很长的寿命,然后需要定期重新生成。
有没有办法可以让我的主办我的满意回购作为#34;只是"一个github回购?
答案 0 :(得分:1)
您可以将静态Satis存储库存储在私有GitHub存储库中,然后使用GitHub的raw.githubusercontent.com
域通过HTTPS提供服务。稍微有点hacky的部分是确保作曲家正确地对GitHub仓库进行身份验证。
生成您的Satis存储库并将其推送到您的私人GitHub存储库,让我们在https://github.com/your-org/your-satis-repo
目录中说output/
。
在您的项目中' composer.json文件,将您的Satis仓库添加到"存储库"部分:
{
"type": "composer",
"url": "https://raw.githubusercontent.com/your-org/your-satis-repo/master/output"
}
最后,要使作曲家通过HTTP基本身份验证对raw.githubusercontent.com
进行身份验证,您需要在" http-basic"中添加新条目。你当地作曲家的一部分:auth.json:
{
"http-basic": {
"raw.githubusercontent.com": {
"username": "GITHUB_USERNAME",
"password": "GITHUB_TOKEN"
}
}
}
raw.githubusercontent.com
已缓存,因此可能需要几分钟才能看到对Satis存储库的更改。答案 1 :(得分:0)
初步测试表明可以完成。
我认为您需要从存储库URL中删除packages.json,我怀疑是?token参数。理论上,您可以通过标题传递令牌:
https://developer.github.com/v3/#authentication
我没有测试过这个。
您可以在此处查看未经身份验证的工作测试:
尝试一下:
git clone git@github.com:markchalloner/satishostcomposer.git
cd satishostcomposer
composer install
应该安装vendor / markchalloner / satishostdemo
示例satisf.json:
{
"name": "Satis Host",
"homepage": "https://raw.githubusercontent.com/markchalloner/satishost/master/web/",
"archive": {
"directory": "dist",
"format": "tar",
"prefix-url": "https://raw.githubusercontent.com/markchalloner/satishost/master/web/",
"skip-dev": true
},
"repositories": [
{
"_comment": "Demo packages",
"type": "package",
"package": {
"name": "markchalloner/satishostdemo",
"version": "0.1.0",
"dist": {
"type": "zip",
"url": "dist/demo.zip"
}
}
}
],
"require-all": true
}
示例composer.json(在您的项目中):
{
"repositories": [
{
"type": "composer",
"url": "https://raw.githubusercontent.com/markchalloner/satishost/master/web",
"options": {
"http": {
"header": [
"API-TOKEN: YOUR-API-TOKEN"
]
}
}
}
],
"require": {
"markchalloner/satishostdemo": "0.1.0"
},
"minimum-stability": "dev"
}
由于