Composer 自定义 GitLab 服务器依赖项

我们在 VPN 后面有一个公司的 GitLab 服务器。那里的包被设置为公开的,但它们实际上是“私有的”,因为未经我们的 VPN 授权您无法访问存储库。


我创建了一个存储库,它依赖于其他存储库(在同一台服务器上)。


回购 1:


"name": "xxx/repo1",

"repositories": [

    {

        "type": "vcs",

        "url": "http://pvt/repo2"

    }

],

"require": {

    "xxx/repo2": "dev-master"

},

回购 2:


"name": "xxx/repo2"

我遇到的问题是当我尝试repo1在我的其他服务之一中使用时。


"name": "other/service",

"repositories": [

    {

        "type": "vcs",

        "url": "http://pvt/repo1"

    }

],

"require": {

    "xxx/repo1": "dev-master"

},

"minimum-stability": "dev",

"prefer-stable": true,

这样做composer install只是告诉我repo2找不到。我可以这样解决:


"name": "other/service",

"repositories": [

    {

        "type": "vcs",

        "url": "http://pvt/repo1"

    },

    {

        "type": "vcs",

        "url": "http://pvt/repo2"

    }

],

"require": {

    "xxx/repo1": "dev-master"

},

但这远非理想。如果我有 10 个服务并且都需要repo1运行,那么在里面引入一个新的依赖项repo1需要我更改 10 个composer.json文件。


为什么这个功能不像其他依赖项那样起作用,以便自动提取所请求包的所有必需依赖项?


我尝试将其添加到配置中:


"config": {

    "gitlab-domains": [

        "pvt"

    ],

    "gitlab-token": {

        "pvt" : "---my-token---"

    }

},

但这基本上什么也没做。


我也尝试pvt用确切的服务器 IP 替换,但没有任何改变。


有没有办法使这项工作?


注意:我不想使用任何外部服务,如 Private Packagist 或 Satis。


浮云间
浏览 121回答 2
2回答

Smart猫小萌

有没有办法使这项工作?答案是否定的

噜噜哒

GitLab 13.2(2020 年 7 月)提供了替代方案使用 GitLab Composer Repository 管理 PHP 依赖项PHP 开发人员需要一种机制来共享和使用他们项目的依赖项。Composer 是 PHP 的依赖管理器,它允许您声明项目所依赖的库,它会为您管理它们。我们很自豪能够提供直接内置于 GitLab 中的 Composer 存储库。PHP 开发人员现在可以更轻松地发现和管理其项目的依赖项。通过与 Composer 集成,GitLab 提供了一个集中位置,可以在与源代码和管道相同的位置查看这些包。Package Registry 中的 PHP 依赖项将列在 All 选项卡下,而不是 Composer-specific 选项卡下。我们将通过在即将到来的里程碑中添加特定于 Composer 的选项卡来迭代改进这一点。
打开App,查看更多内容
随时随地看视频慕课网APP