보호된 태그

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

보호된 태그:

  • 태그를 만들 권한을 가진 사용자를 제어할 수 있습니다.
  • 한 번 생성된 후 실수로 업데이트하거나 삭제하는 것을 방지할 수 있습니다.

각 규칙은 다음 중 하나와 일치시킬 수 있습니다:

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

이 기능은 보호된 브랜치로부터 진화했습니다.

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

기본적으로:

  • 태그를 만들려면 Maintainer 역할이 있어야 합니다.
  • 누구도 태그를 업데이트하거나 삭제할 수 없습니다.

보호된 태그 구성하기

전제 조건:

  • 프로젝트에 대해 적어도 Maintainer 역할이 있어야 합니다.
  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > 리포지터리를 선택합니다.
  3. 보호된 태그를 확장합니다.
  4. 새로 추가를 선택합니다.
  5. 단일 태그를 보호하려면 태그를 선택한 후 드롭다운 디렉터리에서 태그를 선택합니다.
  6. 문자열과 일치하는 이름을 가진 모든 태그를 보호하려면:
    1. 태그를 선택합니다.
    2. 태그 일치에 사용할 문자열을 입력합니다. 와일드카드(*)를 지원합니다.
    3. 와일드카드 생성을 선택합니다.
  7. 생성 허용: 보호된 태그를 만들 수 있는 역할을 선택합니다.

    note
    GitLab Premium 및 Ultimate에서는 생성 허용에 그룹 또는 개별 사용자를 추가할 수도 있습니다.
  8. 보호를 선택합니다.

보호된 태그(또는 와일드카드)가 보호된 태그 디렉터리에 표시됩니다.

와일드카드 보호된 태그

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

와일드카드 보호된 태그 일치하는 태그
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 태그와 일치합니다. 이 경우, 생성 허용과 같은 설정을 가진 보호된 태그 중 어떤 하나라도 설정이 있다면, production-stable도 이 설정을 상속받게 됩니다.

보호된 태그의 이름을 선택하면 GitLab이 모든 일치하는 태그의 디렉터리을 표시합니다:

보호된 태그 일치

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

동일한 이름을 가진 태그와 브랜치는 다른 커밋을 포함할 수 있습니다. 태그와 브랜치가 동일한 이름을 사용하는 경우, 사용자가 git checkout 명령을 실행할 때 태그 qa대신 브랜치 qa를 체크아웃할 수 있습니다. 추가적인 보안 조치로, 브랜치와 동일한 이름을 가진 태그를 생성하지 않도록 주의하시기 바랍니다. 두 가지를 혼동할 경우 잠재적인 보안 또는 운영 문제가 발생할 수 있습니다.

이 문제를 방지하려면:

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

    • 이름stable과 같은 이름 또는 stable-v1stable-v2와 같은 여러 이름과 일치하는 와일드카드를 제공합니다.
    • 생성 허용누구도를 선택합니다.
    • 보호를 선택합니다.

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

배포 키가 보호된 태그를 생성할 수 있도록 허용하기

배포 키의 소유자가 보호된 태그를 생성할 수 있도록 허용할 수 있습니다. 배포 키의 소유자는 관련 프로젝트의 멤버가 아니더라도 작동합니다. 그러나 배포 키의 소유자는 프로젝트에 대해 적어도 읽기 권한이 있어야 합니다.

전제 조건:

  • 프로젝트에 대해 배포 키가 활성화되어 있어야 합니다. 프로젝트 배포 키는 만들 때 기본적으로 활성화됩니다. 그러나 공개 배포 키는 프로젝트에 대한 액세스 권한을 부여해야 합니다.
  • 배포 키는 프로젝트 리포지터리에 쓰기 권한이 있어야 합니다.

배포 키가 보호된 태그를 만들 수 있도록 허용하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 설정 > 리포지터리를 선택합니다.
  3. 보호된 태그를 확장합니다.
  4. 태그 드롭다운 디렉터리에서 보호하려는 태그를 선택합니다.
  5. 생성 허용 디렉터리에서 배포 키를 선택합니다.
  6. 보호를 선택합니다.

보호된 태그 삭제하기

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

전제 조건:

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

수행 방법:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 코드 > 태그를 선택합니다.
  3. 삭제하려는 태그 옆에 삭제()를 선택합니다.
  4. 확인 대화상자에서 태그 이름을 입력하고 예, 보호된 태그 삭제를 선택합니다.

보호된 태그는 로컬 Git 명령 또는 타사 Git 클라이언트를 통해 실수로 삭제하는 것을 방지하기 위해 GitLab에서만 삭제할 수 있습니다.

관련 주제