保護パッケージ
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
デフォルトでは、少なくともデベロッパーロールを持つすべてのユーザーは、パッケージを作成、編集、削除できます。どのユーザーがパッケージを変更できるかを制限するには、パッケージ保護ルールを追加します。
GitLabは、NPM、PyPi、Maven、Conanパッケージのパッケージ保護をサポートしていますが、エピック5574では、追加機能とパッケージ形式を追加することを提案しています。
パッケージが保護されている場合、デフォルトの動作では、パッケージにこれらの制限が適用されます:
| アクション | 最小ロールまたはトークン |
|---|---|
| パッケージを保護する | メンテナー以上のロール。 |
| 新しいパッケージをプッシュする | プッシュに必要な最小アクセスレベルで設定された最小ロール以上。 |
| デプロイトークンで新しいパッケージをプッシュする | 有効なデプロイトークン、プッシュされたパッケージが保護ルールと一致しない場合に限ります。保護されたパッケージは、デプロイトークンでプッシュできません。 |
| パッケージを削除する | 削除に必要な最小アクセスレベルで設定された最小ロール以上。 |
パッケージの保護
前提要件:
- メンテナーロール以上が必要です。
パッケージを保護するには、次の手順に従います:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 設定 > パッケージとレジストリを選択します。
- パッケージレジストリを展開します。
- 保護されたパッケージで、保護ルールを追加するを選択します。
- フィールドに入力します:
- 名前パターンは、保護するパッケージ名のパターンです。パターンには、ワイルドカード(
*)を含めることができます。 - パッケージタイプは、保護するパッケージのタイプです。
- プッシュに必要な最小アクセスレベルは、名前パターンに一致するパッケージをプッシュするために必要な最小ロールです。
- 削除に必要な最小アクセスレベルは、名前パターンに一致するパッケージを削除するために必要な最小ロールです。
- 名前パターンは、保護するパッケージ名のパターンです。パターンには、ワイルドカード(
- 保護を選択します。
パッケージ保護ルールが作成され、設定に表示されます。
複数のパッケージの保護
ワイルドカードを使用して、同じパッケージ保護ルールで複数のパッケージを保護できます。たとえば、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つの保護ルールがパッケージに適用される場合、そのパッケージは保護されます。
パッケージ保護ルールを削除して、パッケージの保護を解除します
前提要件:
- メンテナーロール以上が必要です。
パッケージの保護を解除するには、次の手順に従います:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 設定 > パッケージとレジストリを選択します。
- パッケージレジストリを展開します。
- 保護されたパッケージで、削除する保護ルールの横にある削除( )を選択します。
- 確認ダイアログで、削除を選択します。
パッケージ保護ルールが削除され、設定に表示されなくなります。