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 信息库后,默认情况下它将可用于所有新项目. 要为现有项目启用它,或者要禁用它:

  1. 导航到项目的“设置”>”常规”>”可见性,项目功能,权限” .
  2. 找到”软件包”功能并启用或禁用它.
  3. 单击保存更改以使更改生效.

然后,您应该能够在左侧栏中看到” 程序包和注册表”部分.

Getting started

本节将介绍如何创建一个新的示例 Composer 软件包进行发布. 这是测试GitLab Composer 注册表的快速入门.

您将需要最新版本的Composer .

Creating a package project

了解如何创建完整的 Composer 项目不在本指南的范围内,但是您可以创建一个小程序包来测试注册表. 首先创建一个名为my-composer-package的新目录:

  1. mkdir my-composer-package && cd my-composer-package

在此目录中创建一个新的composer.json文件以设置基本项目:

  1. touch composer.json

composer.json内部,添加以下代码:

  1. { "name": "<namespace>/composer-test", "type": "library", "license": "GPL-3.0-only", "version": "1.0.0" }

<namespace>替换为唯一的命名空间,例如您的 GitLab 用户名或组名.

在创建了基本的包结构之后,我们需要在 Git 中对其进行标记并将其推送到存储库中.

  1. git init
  2. git add composer.json
  3. git commit -m 'Composer package test'
  4. git tag v1.0.0
  5. git add origin git@gitlab.com:<namespace>/<project-name>.git
  6. git push origin v1.0.0

Publishing the package

现在,我们的项目基础已经完成,我们可以发布该软件包了. 为此,您将需要以下内容:

  • 个人访问令牌. 您可以生成范围设置为api个人访问令牌 ,以进行存储库身份验证.
  • 您的项目 ID,可以在项目的主页上找到.

要发布托管在 GitLab 上的软件包,我们需要使用curl这样的工具对 GitLab 软件包 API 进行POST

  1. 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文件中,如下所示:

  1. { ... "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文件:

  1. { "http-basic": { "gitlab.com": { "username": "___token___", "password": "<personal_access_token>" } } }

Where:

  • <personal_access_token>是您的个人访问令牌.

配置了composer.jsonauth.json文件后,您可以通过运行composer安装软件包:

  1. composer update

如果成功,您应该能够看到指示软件包已成功安装的输出.

重要提示:请确保不要将auth.json文件提交到您的存储库. 要从 CI 作业安装软件包,请考虑将composer config工具与您的个人访问令牌一起使用,并将其存储在GitLab CI / CD 环境变量Hashicorp Vault 中 .