我可以简单地作为github回购举办一个令人满意的回购吗?

时间:2015-01-23 11:11:01

标签: github satis

我在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回购?

2 个答案:

答案 0 :(得分:1)

您可以将静态Satis存储库存储在私有GitHub存储库中,然后使用GitHub的raw.githubusercontent.com域通过HTTPS提供服务。稍微有点hacky的部分是确保作曲家正确地对GitHub仓库进行身份验证。

将Satis存储库推送到GitHub

生成您的Satis存储库并将其推送到您的私人GitHub存储库,让我们在https://github.com/your-org/your-satis-repo目录中说output/

准备您的项目' composer.json文件

在您的项目中' composer.json文件,将您的Satis仓库添加到"存储库"部分:

{
    "type": "composer",
    "url": "https://raw.githubusercontent.com/your-org/your-satis-repo/master/output"
}

设置HTTP基本身份验证

最后,要使作曲家通过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"
}

由于