보호된 패키지
Status: Experiment
-
Introduced in GitLab 16.5 with a flag named
packages_protected_packages
. Disabled by default. This feature is an experiment. - Push protected up to access level setting changed to Minimum access level for push in GitLab 17.1.
이 기능의 사용 가능성은 기능 플래그에 의해 제어됩니다.
자세한 내용은 이력을 참조하세요.
이 기능은 테스트용으로 사용 가능하지만, 생산용으로는 준비되지 않았습니다.
기본적으로, 최소한 Developer 역할을 가진 사용자는 패키지를 생성, 편집 및 삭제할 수 있습니다.
패키지에 대한 변경을 허용할 사용자를 제한하기 위해 패키지 보호 규칙을 추가하세요.
패키지가 보호되면, 기본 동작은 패키지에 대한 이러한 제한을 적용합니다:
작업 | 수행할 수 있는 사람 |
---|---|
패키지를 보호하세요 | 최소한 Maintainer 역할. |
새 패키지를 푸시하세요 | Minimum access level for push에서 설정된 최소 역할. |
배포 토큰으로 새 패키지를 푸시하세요 | 유효한 배포 토큰으로, 단지 푸시된 패키지가 보호 규칙과 일치하지 않을 경우에만. 보호된 패키지는 배포 토큰으로 푸시할 수 없습니다. |
패키지 보호하기
- Introduced in GitLab 16.9.
필수 조건:
- 최소한 Maintainer 역할이 필요합니다.
패키지를 보호하려면:
- 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- Settings > Packages and registries를 선택합니다.
- Protected packages에서 Add protection rule를 선택합니다.
- 필드를 작성합니다:
-
Name pattern은 보호하려는 패키지 이름 패턴입니다. 패턴은 와일드카드(
*
)를 포함할 수 있습니다. - Package type은 보호할 패키지의 유형입니다.
- Minimum access level for push는 이름 패턴과 일치하는 패키지를 푸시하기 위해 필요한 최소 역할입니다.
-
Name pattern은 보호하려는 패키지 이름 패턴입니다. 패턴은 와일드카드(
- Protect를 선택합니다.
패키지 보호 규칙이 생성되며, 설정에 나타납니다.
여러 패키지 보호하기
와일드카드를 사용하여 동일한 패키지 보호 규칙으로 여러 패키지를 보호할 수 있습니다.
예를 들어, 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
|
동일한 패키지에 여러 보호 규칙을 적용할 수 있습니다.
하나 이상의 보호 규칙이 패키지에 적용되면, 패키지는 보호됩니다.
패키지 보호 규칙 삭제 및 패키지 보호 해제
- GitLab 16.10에 도입됨 Introduced.
사전 요구 사항:
- 최소한 Maintainer 역할이 있어야 합니다.
패키지 보호를 해제하려면:
- 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- Settings > Packages and registries를 선택합니다.
- Protected packages 아래에서 삭제하려는 보호 규칙 옆에 있는 Delete ()를 선택합니다.
- 확인 대화 상자에서 Delete를 선택합니다.
패키지 보호 규칙이 삭제되며, 설정에서 나타나지 않습니다.