bricev / compolab
GitLab的Composer仓库
Requires
- php: >=7.1.0, <7.2.0
- m4tthumphrey/php-gitlab-api: ^9.0
- php-http/guzzle6-adapter: ^1.0
- symfony/config: ^4.0
- symfony/console: ^4.0
- symfony/dependency-injection: ^4.0
- symfony/event-dispatcher: ^4.0
- symfony/http-kernel: ^4.0
- symfony/routing: ^4.0
- symfony/yaml: ^4.0
Requires (Dev)
- phpunit/phpunit: ^6
This package is auto-updated.
Last update: 2024-09-19 22:19:46 UTC
README
CompoLab是一个PHP包仓库服务器,它将所有符合GitLab规范的仓库作为Composer依赖项提供。
为了在CompoLab注册,您的GitLab仓库必须包含根目录中有效的composer.json
文件。
安全免责声明
默认情况下,CompoLab未加密,任何人都可以访问您的包。为了保护对您的包的访问,您必须按自己的意愿配置您的Web服务器。例如,您可以使用IP白名单过滤,或要求使用自己的自签名SSL证书。
要求
一个(最好是Unix)服务器,配置了以下内容:
- PHP 7.1(一个PHP组件与PHP 7.2存在问题,使此代码仅符合7.1版本)
- Git / Composer
- 一个Web服务器(Nginx或Apache)
- 一个正在运行的GitLab实例(具有管理员用户账户)
安装
-
从您的GitLab实例,编辑您的个人资料,然后转到
访问令牌
并创建一个具有您选择的名称的令牌(例如,CompoLab),没有过期日期,并仅检查api
和sudo
作用域。如果您不是具有sudo
令牌的管理员,您可能在使用CompoLab仓库缓存中缓存组和项目时受到限制。 -
在您想要用作Composer仓库的服务器上运行以下composer命令:
composer create-project bricev/compolab --no-dev --keep-vcs /var/www/compolab
(其中最后一个命令参数是要安装CompoLab的路径)。 -
通过运行命令
php bin/install
执行安装脚本(从CompoLab目录)。在此步骤中,您需要准备好注册GitLab URL和令牌。设置将保存在config/settings.yml
文件中(该文件未进行版本控制)。如果您愿意,您可以使用config/settings.yml.example
模板手动创建它。 -
Web服务器必须正确配置,以便接收GitLab Webhooks并接收
GET /packages.json
请求。主要问题是使public/packages.json
和public/archives
可以从域根目录访问(例如,https://composer.my-website.com/packages.json)。所有其他查询必须转发到public/index.php
。这里可以找到文档化的Nginx配置示例:config/templates/nginx.conf
。 -
使用您的服务器上的
cli
应用程序,并运行以下命令php bin/cli sync
:这将完全同步您的GitLab服务器与CompoLab仓库。执行后,所有分发存档将存储在CompoLab缓存中,而packages.json
索引将是最新的。 -
从您的GitLab实例,转到
管理区域
>系统钩子
,并配置一个带有URLhttps://composer.my-website.com/gitlab
(其中composer.my-website.com
是您想要与CompoLab实例一起使用的域或IP)的系统钩子(您被建议在Web服务器级别确保安全性,因此不需要秘密令牌),并仅检查推送事件
、标记推送事件
和启用SSL验证
(如果您的Web服务器已正确配置以接受SSL请求)。
一切就绪:您的仓库已经完整,并且任何未来推送到GitLab的推送/标记都将由CompoLab注册。
用法
为了使您的本地Composer安装知道如何找到您的CompoLab仓库,您需要添加一些配置。您可以从您的机器或直接从您的包中配置仓库。
本地设置
您可以在本地计算机/服务器上执行以下命令,让Composer知道CompoLab的存在
composer config -g repositories.compolab composer https://composer.my-website.com
此命令应在Unix系统中的~/.composer/config.json
(文件中添加以下行
{ "repositories": { "compolab": { "type": "composer", "url": "https://composer.my-website.com" } } }
包设置
或者,您可以直接在包的composer.json文件中设置仓库地址
{ "repositories": [ { "type": "composer", "url": "https://composer.my-website.com" } ] }