対応パッケージ機能

GitLabパッケージレジストリでは、パッケージの種類ごとに異なる機能をサポートしています。このサポートには、パッケージの公開とプル、リクエストの転送、重複の管理、認証が含まれます。

パッケージの公開

パッケージはプロジェクト、グループ、インスタンスに公開できます。

パッケージタイププロジェクトグループインスタンス
Maven (mvnを使用)YNN
Maven (gradleを使用)YNN
Maven (sbtを使用)NNN
npmYNN
NuGetYNN
PyPIYNN
汎用パッケージYNN
TerraformYNN
ComposerNYN
ConanYNY
HelmYNN
DebianYNN
GoYNN
Ruby gemsYNN

荷物の引き上げ

パッケージはプロジェクト、グループ、インスタンスからプルできます。

パッケージタイププロジェクトグループインスタンス
Maven (mvnを使用)YYY
Maven (gradleを使用)YYY
Maven (sbtを使用)YYY
npmYNY
NuGetYYN
PyPIYYN
汎用パッケージYNN
TerraformNYN
ComposerYYN
ConanYNY
HelmYNN
DebianYNN
GoYNY
Ruby gemsYNN

転送要求

GitLab プロジェクトで見つからないパッケージへのリクエストは、公開レジストリに転送されます。例えば、Maven Centralやnpmjs、PyPiなどです。

パッケージタイプリクエスト転送に対応
Maven (mvnを使用)はい (デフォルトでは無効)
Maven (gradleを使用)はい (デフォルトでは無効)
Maven (sbtを使用)はい (デフォルトでは無効)
npmはい
NuGetN
PyPIはい
汎用パッケージN
TerraformN
ComposerN
ConanN
HelmN
DebianN
GoN
Ruby gemsN

パッケージの削除

パッケージのリクエストが公開レジストリに転送される場合、 パッケージの削除は依存関係の混乱の脆弱性になりえます。

システムが削除されたパッケージを取り出そうとすると、 リクエストは公開レジストリに転送されます。同じ名前とバージョンのパッケージが公開レジストリに見つかると、 代わりにそのパッケージが取り出されます。レジストリから引き出されたパッケージは期待されたものではなく、 悪意のあるものである可能性もあります。

関連するセキュリティリスクを減らすには、パッケージを削除する前に次のことを行ってください:

  • パッケージがアクティブに使用されていないことを確認してください。
  • リクエスト転送を無効にします:
    • インスタンス管理者は、管理エリアの継続的インテグレーションセクションで転送を無効にできます。
    • グループのオーナーは、グループ設定の [パッケージとレジストリ] セクションで転送を無効にできます。

重複の許可または防止

デフォルトでは、GitLabのパッケージレジストリでは、特定のパッケージマネージャのフォーマットのデフォルトに基づき、重複を許可または防止します。

パッケージタイプ重複を許可しますか?
Maven (mvnを使用)Y (設定可能)
Maven (gradleを使用)Y (設定可能)
Maven (sbtを使用)Y (設定可能)
npmN
NuGetY
PyPIN
汎用パッケージY (設定可能)
TerraformN
ComposerN
ConanN
HelmY
DebianY
GoN
Ruby gemsY

認証トークン

GitLab トークンは GitLab パッケージレジストリとの認証に使用します。

以下のトークンがサポートされています:

パッケージタイプサポートされるトークン
Maven (mvnを使用)個人アクセス、ジョブトークン、デプロイ (プロジェクトまたはグループ)、プロジェクトアクセス
Maven (gradleを使用)個人アクセス、ジョブトークン、デプロイ (プロジェクトまたはグループ)、プロジェクトアクセス
Maven (sbtを使用)個人アクセス、ジョブトークン、デプロイ (プロジェクトまたはグループ)、プロジェクトアクセス
npm個人アクセス、ジョブトークン、デプロイ (プロジェクトまたはグループ)、プロジェクトアクセス
NuGet個人アクセス、ジョブトークン、デプロイ (プロジェクトまたはグループ)、プロジェクトアクセス
PyPI個人アクセス、ジョブトークン、デプロイ (プロジェクトまたはグループ)、プロジェクトアクセス
汎用パッケージ個人アクセス、ジョブトークン、デプロイ (プロジェクトまたはグループ)、プロジェクトアクセス
Terraform個人アクセス、ジョブトークン、デプロイ (プロジェクトまたはグループ)、プロジェクトアクセス
Composer個人アクセス、ジョブトークン、デプロイ (プロジェクトまたはグループ)、プロジェクトアクセス
Conan個人アクセス、ジョブトークン、プロジェクトアクセス
Helm個人アクセス、ジョブトークン、デプロイ(プロジェクトまたはグループ)
Debian個人アクセス、ジョブトークン、デプロイ(プロジェクトまたはグループ)
Go個人アクセス、ジョブトークン、プロジェクトアクセス
Ruby gems個人アクセス、ジョブトークン、デプロイ(プロジェクトまたはグループ)

認証プロトコル

以下の認証プロトコルに対応しています:

パッケージタイプ対応認証プロトコル
Maven (mvnを使用)ヘッダー、基本認証(プルのみ) (1)
Maven (gradleを使用)ヘッダー、基本認証(プルのみ) (1)
Maven (sbtを使用)基本認証 (1)
npmOAuth
NuGet基本的な認証
PyPI基本的な認証
汎用パッケージ基本的な認証
Terraformトークン
ComposerOAuth
ConanOAuth、ベーシック認証
Helm基本的な認証
Debian基本的な認証
Go基本的な認証
Ruby gemsトークン
  1. GitLab 16.0 で導入されたMaven パッケージの基本認証。

サポートされているハッシュタイプ

ハッシュ値は、正しいパッケージを使用していることを確認するために使用されます。これらの値はユーザーインターフェイスまたはAPIで確認できます。

パッケージレジストリでは以下のハッシュ型をサポートしています:

パッケージタイプ対応ハッシュ
Maven (mvnを使用)MD5、SHA1
Maven (gradleを使用)MD5、SHA1
Maven (sbtを使用)MD5、SHA1
npmSHA1
NuGet該当なし
PyPIMD5、SHA256
汎用パッケージSHA256
Composer該当なし
ConanMD5、SHA1
Helm該当なし
Debianmd5、sha1、sha256
Gomd5、sha1、sha256
Ruby gemsMD5, SHA1, SHA256 (gemspec のみ)