すべてのパッケージを1つのGitLabプロジェクトに保存します。

すべてのパッケージを一つのプロジェクトのパッケージレジストリに保存することができます。GitLabリポジトリを使ってコードを保存するのではなく、リポジトリを使ってすべてのパッケージを保存することができます。それから、リモートリポジトリがGitLabのプロジェクトを指すように設定できます。

こうするとよいでしょう:

  • GitLab にパッケージを公開したいが、コードを保存しているプロジェクトとは別のプロジェクトに公開したい場合。
  • パッケージを一つのプロジェクトにグループ化したい場合。たとえば、すべての npm パッケージや特定の部署のパッケージ、非公開パッケージなどを同じプロジェクトにまとめたい場合。
  • 他のプロジェクトのパッケージをインストールするときは、リモートを使いたいでしょう。
  • サードパーティのパッケージレジストリからGitLabの一つの場所にパッケージをマイグレーションし、それぞれのパッケージのために別々のプロジェクトをセットアップすることを心配したくない場合。
  • CI/CDパイプラインですべてのパッケージを一つのプロジェクトにビルドし、パッケージの検証担当者が一箇所で管理できるようにしたい場合。

ウォークスルー例

この機能に特化した機能はありません。代わりに、異なるパッケージタイプを同じ場所に公開するために、それぞれのパッケージ管理システムの機能を利用しています。

異なるパッケージタイプを1つのGitLabプロジェクトに保存します。

それでは、ひとつのプロジェクトですべてのパッケージを管理する方法を見てみましょう:

  1. GitLab で新しいプロジェクトを作成します。このプロジェクトには、コードやコンテンツは必要ありません。
  2. 左のサイドバーでProject overview を選択し、プロジェクト ID を入力します。
  3. 認証用のアクセストークンを作成します。パッケージレジストリにあるすべてのパッケージタイプで公開できます:

    プロジェクトが非公開の場合、パッケージのダウンロードにも認証が必要です。

  4. ローカルプロジェクトを設定し、パッケージを公開します。

すべての種類のパッケージを同じプロジェクトにアップロードすることも、パッケージの種類やパッケージの可視レベルに基づいて分割することもできます。

npm

npm を使用している場合は、.npmrc ファイルを作成します。プロジェクトにパッケージを公開するための適切なURLを追加します。最後に、package.json ファイルにセクションを追加します。

GitLab Package Registry npm ドキュメントの指示に従ってください。この後、パッケージの公開セクションで説明したように、npm publish を使って npm パッケージをプロジェクトに公開します。

Maven

Maven を使用している場合、ディストリビューションセクションでpom.xml ファイルを更新します。これらの更新には、GitLab Mavenリポジトリのドキュメントで説明されているように、プロジェクトの適切なURLを含めます。それから、settings.xml ファイルを追加し、アクセストークンを含める必要があります。これで、プロジェクトにMaven パッケージを公開できるようになります。

Conan

Conanでは、GitLabをConanレジストリリモートとして追加する必要があります。GitLab Conan Repositoryのドキュメントに従ってください。それから、プラスで区切られた (+) プロジェクトパスを Conan ユーザーとしてパッケージを作成してください。例えば、プロジェクトがhttps://gitlab.com/foo/bar/my-proj にある場合、conan create . foo+bar+my-proj/channelを使ってConan パッケージを作成します。channel はあなたのパッケージチャンネルです(stablebetaなど)。

パッケージを作成したら、最終的なパッケージのレシピに応じて、パッケージを公開する準備ができます。例えば

CONAN_LOGIN_USERNAME=<gitlab-username> CONAN_PASSWORD=<personal_access_token> conan upload MyPackage/1.0.0@foo+bar+my-proj/channel --all --remote=gitlab

Composer

Composer パッケージをプロジェクトの外部に公開することはできません。このようなパッケージを他のプロジェクトに公開する機能を実装するためのイシューが存在します。

他のすべてのパッケージタイプ

GitLabがサポートするすべてのパッケージタイプは、同じGitLabプロジェクトで公開できます。以前のリリースでは、すべてのパッケージタイプを同じプロジェクトで公開することはできませんでした。