GitLab Composer Repository
原文:https://docs.gitlab.com/ee/user/packages/composer_repository/
GitLab Composer Repository
Introduced in GitLab Premium 13.2.
使用 GitLab Composer 信息库,每个项目都可以有自己的空间来存储Composer软件包.
Enabling the Composer Repository
注意:仅当您的 GitLab 管理员启用了对 Package Registry 的支持时,此选项才可用.
启用 Composer 信息库后,默认情况下它将可用于所有新项目. 要为现有项目启用它,或者要禁用它:
- 导航到项目的“设置”>”常规”>”可见性,项目功能,权限” .
- 找到”软件包”功能并启用或禁用它.
- 单击保存更改以使更改生效.
然后,您应该能够在左侧栏中看到” 程序包和注册表”部分.
Getting started
本节将介绍如何创建一个新的示例 Composer 软件包进行发布. 这是测试GitLab Composer 注册表的快速入门.
您将需要最新版本的Composer .
Creating a package project
了解如何创建完整的 Composer 项目不在本指南的范围内,但是您可以创建一个小程序包来测试注册表. 首先创建一个名为my-composer-package
的新目录:
mkdir my-composer-package && cd my-composer-package
在此目录中创建一个新的composer.json
文件以设置基本项目:
touch composer.json
在composer.json
内部,添加以下代码:
{ "name": "<namespace>/composer-test", "type": "library", "license": "GPL-3.0-only", "version": "1.0.0" }
将<namespace>
替换为唯一的命名空间,例如您的 GitLab 用户名或组名.
在创建了基本的包结构之后,我们需要在 Git 中对其进行标记并将其推送到存储库中.
git init
git add composer.json
git commit -m 'Composer package test'
git tag v1.0.0
git add origin git@gitlab.com:<namespace>/<project-name>.git
git push origin v1.0.0
Publishing the package
现在,我们的项目基础已经完成,我们可以发布该软件包了. 为此,您将需要以下内容:
- 个人访问令牌. 您可以生成范围设置为
api
的个人访问令牌 ,以进行存储库身份验证. - 您的项目 ID,可以在项目的主页上找到.
要发布托管在 GitLab 上的软件包,我们需要使用curl
这样的工具对 GitLab 软件包 API 进行POST
:
curl --data tag=<tag> 'https://__token__:<personal-access-token>@gitlab.com/api/v4/projects/<project_id>/packages/composer'
Where:
<personal-access-token>
是您的个人访问令牌.<project_id>
是您的项目 ID.<tag>
是您要发布的版本的 Git 标记名称. 在此示例中,它应为v1.0.0
. 请注意,除了使用tag=<tag>
您还可以使用branch=<branch>
来发布分支.
如果上面的命令成功执行,您现在应该可以在项目页面的” 程序包和注册表”部分下看到该程序包.
Installing a package
要安装您的软件包,您需要:
- 个人访问令牌. 您可以生成范围设置为
api
的个人访问令牌 ,以进行存储库身份验证. - 您的组 ID,可在项目组的主页上找到.
将 GitLab Composer 软件包存储库以及要安装的软件包名称和版本添加到现有项目的composer.json
文件中,如下所示:
{ ... "repositories": [ { "type": "composer", "url": "https://gitlab.com/api/v4/group/<group_id>/-/packages/composer/packages.json" } ], "require": { ... "<package_name>": "<version>" }, ... }
Where:
<group_id>
是在项目的”组”页面下找到的组 ID.<package_name>
是软件包的composer.json
文件中定义的软件包名称.<version>
是您的软件包版本(在此示例中为1.0.0
).
您还需要使用 GitLab 凭据创建一个auth.json
文件:
{ "http-basic": { "gitlab.com": { "username": "___token___", "password": "<personal_access_token>" } } }
Where:
<personal_access_token>
是您的个人访问令牌.
配置了composer.json
和auth.json
文件后,您可以通过运行composer
安装软件包:
composer update
如果成功,您应该能够看到指示软件包已成功安装的输出.
重要提示:请确保不要将auth.json
文件提交到您的存储库. 要从 CI 作业安装软件包,请考虑将composer config
工具与您的个人访问令牌一起使用,并将其存储在GitLab CI / CD 环境变量或Hashicorp Vault 中 .