正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

保護パッケージ

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

デフォルトでは、デベロッパー、メンテナー、またはオーナーロールを持つすべてのユーザーが、パッケージを作成、編集、削除できます。どのユーザーがパッケージを変更できるかを制限するには、パッケージ保護ルールを追加します。

GitLabは、npm、PyPI、Maven、およびConanのパッケージの保護をサポートしていますが、エピック5574では追加の機能とパッケージ形式の追加が提案されています。

パッケージが保護されている場合、デフォルトの動作では、次の制限がパッケージに適用されます:

アクション最小ロールまたはトークン
パッケージを保護するメンテナーまたはオーナーのロール。
新しいパッケージをプッシュするプッシュに必要な最小アクセスレベルで設定されたロール以上。
デプロイトークンで新しいパッケージをプッシュするプッシュされたパッケージが保護ルールと一致しない場合に限り、有効なデプロイトークン。保護されたパッケージは、デプロイトークンでプッシュすることはできません。
パッケージを削除する削除に必要な最小アクセスレベルで設定されたロール以上。

パッケージを保護する

前提条件:

  • メンテナーまたはオーナーのロールを持っている必要があります。

パッケージを保護するには:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 設定 > パッケージとレジストリを選択します。
  3. パッケージレジストリを展開します。
  4. 保護されたパッケージで、保護ルールを追加するを選択します。
  5. フィールドに入力します:
    • 名前パターンは、保護したいパッケージの名前パターンです。パターンにはワイルドカード (*) を含めることができます。
    • パッケージタイプは、保護するパッケージのタイプです。
    • プッシュに必要な最小アクセスレベルは、名前パターンに一致するパッケージをプッシュするために必要な最小限のロールです。
    • 削除に必要な最小アクセスレベルは、名前パターンに一致するパッケージを削除するために必要な最小限のロールです。
  6. 保護を選択します。

パッケージ保護ルールが作成され、設定に表示されます。

複数のパッケージを保護する

ワイルドカードを使用して、同じパッケージ保護ルールで複数のパッケージを保護できます。たとえば、CI/CDパイプライン中にビルドされたすべての一時的なパッケージを保護できます。

次の表に、複数のパッケージに一致するパッケージ保護ルールの例を示します:

ワイルドカードを含むパッケージ名パターン一致するパッケージ
@group/package-*@group/package-prod@group/package-prod-sha123456789
@group/*package@group/package@group/prod-package@group/prod-sha123456789-package
@group/*package*@group/package@group/prod-sha123456789-package-v1

同じパッケージに複数の保護ルールを適用することができます。少なくとも1つの保護ルールがパッケージに適用される場合、そのパッケージは保護されます。

パッケージ保護ルールを削除し、パッケージの保護を解除する

前提条件:

  • メンテナーまたはオーナーのロールを持っている必要があります。

パッケージの保護を解除するには:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 設定 > パッケージとレジストリを選択します。
  3. パッケージレジストリを展開します。
  4. 保護されたパッケージの下で、削除したい保護ルールの横にある削除 ( remove ) を選択します。
  5. 確認ダイアログで、削除を選択します。

パッケージ保護ルールは削除され、設定には表示されません。