GitLab Composerリポジトリ
GitLab Premium13.2で導入されました。
GitLab Composerリポジトリを使えば、すべてのプロジェクトはComposerパッケージを保存するための独自のスペースを持つことができます。
Composerリポジトリの有効化
Composer リポジトリを有効にすると、デフォルトですべての新規プロジェクトで利用できるようになります。 既存のプロジェクトで有効にする場合、または無効にする場合は、以下の手順に従います:
- プロジェクトの[設定]>[一般]>[権限]に移動します。
- パッケージ機能を検索し、有効または無効にします。
- 変更を有効にするには、[変更を保存]をクリックします。
左サイドバーに「パッケージ&レジストリ」セクションが表示されます。
利用を開始
このセクションでは、新しい Composer パッケージのサンプルを作成して公開する方法を説明します。 これは、GitLab Composerレジストリをテストするためのクイックスタートです。
Composerの最新バージョンが必要です。
パッケージプロジェクトの作成
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
パッケージの公開
プロジェクトの基本が完成したので、パッケージを公開しましょう。 そのためには、以下のものが必要です:
- 個人アクセストークン。リポジトリ認証のスコープを
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'
どこで
-
<personal-access-token>
はあなたの個人アクセストークンです。 -
<project_id>
はプロジェクトIDです。 -
<tag>
は公開したいバージョンの Git タグ名です。この例ではv1.0.0
とします。ブランチを公開するにはtag=<tag>
のかわりにbranch=<branch>
を使うこともできることに注意しましょう。
上記のコマンドが成功すれば、プロジェクトページのPackages & Registriesセクションにパッケージが表示されるはずです。
パッケージのインストール
パッケージをインストールするには、以下のものが必要です:
- 個人アクセストークン。リポジトリ認証のスコープを
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>"
},
...
}
どこで
-
<group_id>
はプロジェクトのグループページにあるグループIDです。 -
<package_name>
は、パッケージのcomposer.json
ファイルで定義されているパッケージ名です。 -
<version>
はパッケージのバージョンです ( この例では1.0.0
)。
また、GitLab の認証情報でauth.json
ファイルを作成する必要があります:
{
"http-basic": {
"gitlab.com": {
"username": "___token___",
"password": "<personal_access_token>"
}
}
}
どこで
-
<personal_access_token>
はあなたの個人アクセストークンです。
composer.json
とauth.json
ファイルが設定されたら、composer
を実行してパッケージをインストールします:
composer update
成功すれば、パッケージが正常にインストールされたことを示す出力が表示されるはずです。
auth.json
ファイルをリポジトリにコミットしないようにしてください。 CI ジョブからパッケージをインストールするには、GitLab CI/CD環境変数または](https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md#authentication)Hashicorp Vault](https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md#authentication)に保存されている個人アクセストークンを使用して、composer config
ツールを使用することを検討してください。