보호된 태그

Tier: Free, Premium, Ultimate

Offering: GitLab.com, Self-managed, GitLab Dedicated

보호된 태그:

  • 태그 생성 권한을 제어할 수 있습니다.
  • 생성된 후에는 우발적인 업데이트나 삭제를 방지합니다.

각 규칙은 다음을 일치시키도록 허용합니다:

  • 개별 태그 이름.
  • 여러 태그를 동시에 제어하기 위한 와일드카드.

이 기능은 보호된 브랜치에서 발전하였습니다.

보호된 태그를 수정할 수 있는 사람

기본적으로:

  • 태그를 생성하거나 삭제하려면 Maintainer 역할이 필요합니다.
  • 보호된 태그는 UI 또는 API를 사용하여 삭제할 수 있습니다.

보호된 태그 구성

사전 요구 사항:

  • 프로젝트에 대해 최소한 Maintainer 역할이 있어야 합니다.
  1. 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Settings > Repository를 선택합니다.
  3. Protected tags를 확장합니다.
  4. Add new를 선택합니다.
  5. 단일 태그를 보호하려면 Tag를 선택한 다음 드롭다운 목록에서 태그를 선택합니다.
  6. 문자열과 일치하는 모든 태그를 보호하려면:
    1. Tag를 선택합니다.
    2. 태그 일치에 사용할 문자열을 입력합니다. 와일드카드(*)가 지원됩니다.
    3. Create wildcard를 선택합니다.
  7. Allowed to create에서 보호된 태그를 생성할 수 있는 역할을 선택합니다.

    note
    GitLab Premium 및 Ultimate에서는 Allowed to create에 그룹이나 개별 사용자를 추가할 수 있습니다.
  8. Protect를 선택합니다.

보호된 태그(또는 와일드카드)가 Protected tags 목록에 표시됩니다.

와일드카드 보호된 태그

와일드카드 보호된 태그를 지정할 수 있으며, 이는 와일드카드와 일치하는 모든 태그를 보호합니다. 예를 들어:

와일드카드 보호된 태그 일치하는 태그
v* v1.0.0, version-9.1
*-deploy march-deploy, 1.0-deploy
*gitlab* gitlab, gitlab/v1
* v1.0.1rc2, accidental-tag

두 개의 다른 와일드카드가 같은 태그와 일치할 수 있습니다. 예를 들어, *-stableproduction-*는 모두 production-stable 태그와 일치합니다. 이 경우, 이러한 보호된 태그 중 어떤 것이든 Allowed to create와 같은 설정을 가지고 있다면, production-stable도 이 설정을 상속받습니다.

보호된 태그의 이름을 선택하면 GitLab은 일치하는 모든 태그 목록을 표시합니다:

보호된 태그 일치

동일한 이름의 브랜치와 태그 생성 방지

동일한 이름을 가진 태그와 브랜치는 서로 다른 커밋을 포함할 수 있습니다. 태그와 브랜치가 동일한 이름을 사용하면 git checkout 명령을 실행하는 사용자가 _tag_ qa를 체크아웃할 수 있지만 사실은 _branch_ qa를 체크아웃하려고 했을 수 있습니다. 추가적인 보안 조치를 위해, 동일한 이름의 태그를 생성하는 것을 피하세요. 두 개를 혼동하는 것은 잠재적인 보안 또는 운영 문제를 초래할 수 있습니다.

이 문제를 방지하기 위해:

  1. 태그로 사용하고 싶지 않은 브랜치 이름을 식별합니다.
  2. 보호된 태그 구성에서 설명한 대로 보호된 태그를 생성합니다:

    • Name에는 stable과 같은 이름을 제공합니다. stable-*와 같은 와일드카드를 생성하여 stable-v1stable-v2와 같은 여러 이름과 일치시킬 수 있습니다.
    • Allowed to Create에서 No one을 선택합니다.
    • Protect를 선택합니다.

사용자는 여전히 브랜치를 생성할 수 있지만 보호된 이름으로 태그를 생성할 수는 없습니다.

배포 키를 사용하여 보호된 태그 생성 허용

배포 키의 소유자가 보호된 태그를 생성할 수 있도록 허용할 수 있습니다.

배포 키는 사용자가 관련 프로젝트의 멤버가 아니더라도 작동합니다. 그러나 배포 키의 소유자는 프로젝트에 대한 읽기 권한을 가져야 합니다.

전제 조건:

  • 배포 키는 귀하의 프로젝트에 대해 활성화되어 있어야 합니다. 프로젝트 배포 키는 생성될 때 기본적으로 활성화됩니다. 그러나 공개 배포 키는 프로젝트에 대한 접근 권한을 부여받아야 합니다.
  • 배포 키는 귀하의 프로젝트 저장소에 쓰기 접근 권한이 있어야 합니다.

배포 키가 보호된 태그를 생성하도록 허용하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.

  2. 설정 > 저장소를 선택합니다.

  3. 보호된 태그를 확장합니다.

  4. 태그 드롭다운 목록에서 보호할 태그를 선택합니다.

  5. 생성 허용 대상 목록에서 배포 키를 선택합니다.

  6. 보호를 선택합니다.

보호된 태그에서 파이프라인 실행

보호된 태그를 생성할 수 있는 권한은 사용자가 다음을 수행할 수 있는지를 정의합니다:

  • CI/CD 파이프라인을 시작하고 실행할 수 있습니다.
  • 이러한 태그와 관련된 작업에서 작업을 실행할 수 있습니다.

이러한 권한은 권한이 있는 사용자만 보호된 태그에 대한 CI/CD 프로세스를 트리거하고 관리할 수 있도록 보장합니다.

보호된 태그 삭제

GitLab API 또는 GitLab 사용자 인터페이스를 사용하여 보호된 태그를 수동으로 삭제할 수 있습니다.

전제 조건:

  • 프로젝트에서 적어도 Maintainer 역할이 있어야 합니다.

이를 수행하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.

  2. 코드 > 태그를 선택합니다.

  3. 삭제하려는 태그 옆에서 삭제( )를 선택합니다.

  4. 확인 대화 상자에서 태그 이름을 입력하고 예, 보호된 태그 삭제를 선택합니다.

보호된 태그는 GitLab UI 또는 API를 통해서만 삭제할 수 있습니다.

이러한 보호 기능은 로컬 Git 명령이나 타사 Git 클라이언트를 통해 태그를 실수로 삭제하는 것을 방지합니다.

관련 주제