InfoGrab Docs

보호된 태그

요약

각 규칙을 통해 다음 중 하나를 매칭할 수 있습니다: 이 기능은 보호된 브랜치에서 발전했습니다. 보호된 태그를 생성하거나 삭제하려면 해당 보호된 태그의 Allowed to create 목록에 있어야 합니다. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

보호된 태그:

  • 태그를 생성할 수 있는 권한을 제어할 수 있습니다.
  • 생성 후 실수로 업데이트하거나 삭제하는 것을 방지합니다.

각 규칙을 통해 다음 중 하나를 매칭할 수 있습니다:

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

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

Note

보호된 태그를 생성하거나 삭제하려면 해당 보호된 태그의 Allowed to create 목록에 있어야 합니다.

보호된 태그 구성#

사전 요구사항:

  • 프로젝트에 대한 Maintainer 또는 Owner 권한이 있어야 합니다.
  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 목록에 표시됩니다.

보호된 태그에 그룹 추가#

그룹 또는 하위 그룹의 멤버를 보호된 태그를 생성할 수 있도록 설정하려면:

  1. 왼쪽 사이드바에서 Search or go를 선택하고 프로젝트를 찾습니다.

  2. Settings > Repository를 선택합니다.

  3. Protected tags를 펼칩니다.

  4. 다음 필드에 그룹을 추가합니다:

    # Allow group members to create protected tags
    Allowed to create: @group-x
    

그룹 상속 및 자격#

Mermaid 다이어그램 (8줄)
소스 코드 보기
%%{init: { "fontFamily": "GitLab Sans" }}%%
graph TD
    accTitle: Diagram of group inheritance for protected tags
    accDescr: If a project is shared with a group, the group members inherit permissions for protected tags.
    A[Parent group X] -->|owns| B[Project A]
    A -->|contains| C[Subgroup Y]
    B -->|shared with| C
    C -->|members inherit permissions| B

이 예시에서:

  • 상위 그룹 X(group-x)는 프로젝트 A를 소유합니다.
  • 상위 그룹 X에는 하위 그룹 Y(group-x/subgroup-y)도 포함됩니다.
  • 프로젝트 A는 하위 그룹 Y와 공유됩니다.

보호된 태그 권한에 적격한 그룹은:

  • 프로젝트 A: 그룹 X와 하위 그룹 Y 모두, 프로젝트 A가 하위 그룹 Y와 공유되기 때문입니다.

그룹과 프로젝트 공유#

그룹 또는 하위 그룹과 프로젝트를 공유하여 해당 멤버들이 보호된 태그 권한에 적격하도록 할 수 있습니다.

Mermaid 다이어그램 (10줄)
소스 코드 보기
%%{init: { "fontFamily": "GitLab Sans" }}%%
graph LR
    accTitle: Diagram of project sharing for protected tag permissions
    accDescr: Sharing a project with a group affects whether their members can have protected tag permissions.
    A[Parent group X] -->|owns| B[Project A]
    A -->|also contains| C[Subgroup Y]
    C -.->D{Share Project A<br/>with Subgroup Y?} -.->|yes| E[Members of Subgroup Y<br/>can have protected<br/>tag permissions]
    D{Share Project A<br/>with Subgroup Y?} -.->|no| F[Members of Subgroup Y<br />cannot have protected<br/>tag permissions]
    E -.->|Add Subgroup Y<br/> to protected tag settings| I[Subgroup Y members<br/>can create tags] -.-> B
    F -.-> |Add Subgroup Y<br/> to protected tag settings| J[Settings will not<br/>take effect] -.-> B

프로젝트 A에 대한 하위 그룹 Y 멤버의 접근 권한을 부여하려면 하위 그룹과 프로젝트를 공유해야 합니다. 하위 그룹을 보호된 태그 설정에 직접 추가하는 것은 효과적이지 않으며 하위 그룹 멤버에게는 적용되지 않습니다.

Note

그룹이 보호된 태그 권한을 갖기 위해서는 프로젝트가 해당 그룹과 직접 공유되어야 합니다. 상위 그룹의 상속된 프로젝트 멤버십은 보호된 태그 권한에 충분하지 않습니다.

와일드카드 보호 태그#

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

와일드카드 보호 태그 일치하는 태그
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은 일치하는 모든 태그 목록을 표시합니다.

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

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

사전 요구사항:

  • 배포 키가 프로젝트에 대해 활성화되어 있어야 합니다. 프로젝트 배포 키는 생성될 때 기본적으로 활성화됩니다. 그러나 공개 배포 키는 프로젝트에 대한 접근 권한을 부여받아야 합니다.
  • 배포 키는 프로젝트 리포지터리에 대한 쓰기 접근 권한이 있어야 합니다.
  • 배포 키의 소유자는 프로젝트에 대한 최소 읽기 접근 권한이 있어야 합니다.
  • 배포 키의 소유자는 프로젝트의 멤버여야 합니다.

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

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > Repository를 선택합니다.
  3. Protected tags를 펼칩니다.
  4. Tag 드롭다운 목록에서 보호하려는 태그를 선택합니다.
  5. Allowed to create 목록에서 배포 키를 선택합니다.
  6. Protect를 선택합니다.

브랜치 이름으로 태그 생성 방지#

동일한 이름을 가진 태그와 브랜치는 다른 커밋을 포함할 수 있습니다. 태그와 브랜치가 동일한 이름을 사용하는 경우 git checkout 명령을 실행하는 사용자가 브랜치 qa를 체크아웃하려 했는데 실수로 태그 qa를 체크아웃할 수 있습니다. 추가적인 보안 조치로서 브랜치와 동일한 이름으로 태그를 생성하지 마세요. 두 가지를 혼동하면 잠재적인 보안 또는 운영 이슈가 발생할 수 있습니다.

이 문제를 방지하려면:

  1. 태그로 사용하지 않으려는 브랜치 이름을 식별합니다.

  2. 보호된 태그 구성에 설명된 대로 보호된 태그를 생성합니다:

    • Name에는 stable과 같은 이름을 제공합니다. stable-v1stable-v2와 같은 여러 이름을 매칭하기 위해 stable-*와 같은 와일드카드를 생성할 수도 있습니다.
    • Allowed to Create에는 No one을 선택합니다.
    • Protect를 선택합니다.

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

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

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

  • CI/CD 파이프라인을 시작하고 실행합니다.
  • 이러한 태그와 관련된 job에 대한 작업을 실행합니다.

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

태그 보호 해제#

보호 규칙을 제거하여 태그를 보호 해제할 수 있습니다. 이 작업은 보호 구성을 제거하는 것이지 태그 자체를 제거하는 것이 아닙니다. 태그는 리포지터리에 남아 있지만 더 이상 보호되지 않습니다.

사전 요구사항:

  • Maintainer 또는 Owner 권한이 있어야 합니다.

태그를 보호 해제하려면:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > Repository를 선택합니다.
  3. Protected tags를 펼칩니다.
  4. 제거하려는 보호된 태그 규칙 옆에서 Unprotect를 선택합니다.
Warning

태그 패턴 보호를 해제하면 Developer, Maintainer, 또는 Owner 권한을 가진 모든 사용자가 해당 패턴과 일치하는 태그를 삭제할 수 있습니다.

보호된 태그 삭제#

보호 규칙이 적용된 태그를 삭제할 수 있습니다. 이는 보호 규칙이 아닌 리포지터리에서 태그를 제거합니다. 태그를 삭제하지 않고 보호 규칙을 제거하려면 태그 보호 해제를 참조하세요.

사전 요구사항:

  • 해당 태그에 대한 권한 또는 사용자의 Allowed to create 목록에 있어야 합니다.
  • 프로젝트에서 Maintainer 또는 Owner 권한.

보호된 태그를 삭제하려면:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Code > Tags를 선택합니다.
  3. 삭제하려는 태그 옆에서 Delete ([remove])를 선택합니다.
  4. 확인 대화 상자에서 태그 이름을 입력하고 Yes, delete protected tag를 선택합니다.

보호된 태그는 UI 또는 API를 통해 GitLab을 사용해서만 삭제할 수 있습니다. 이러한 보호 기능은 로컬 Git 명령 또는 서드파티 Git 클라이언트를 통해 실수로 태그를 삭제하는 것을 방지합니다.

관련 주제#

보호된 태그

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

각 규칙을 통해 다음 중 하나를 매칭할 수 있습니다: 이 기능은 보호된 브랜치에서 발전했습니다. 보호된 태그를 생성하거나 삭제하려면 해당 보호된 태그의 Allowed to create 목록에 있어야 합니다. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

보호된 태그:

  • 태그를 생성할 수 있는 권한을 제어할 수 있습니다.
  • 생성 후 실수로 업데이트하거나 삭제하는 것을 방지합니다.

각 규칙을 통해 다음 중 하나를 매칭할 수 있습니다:

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

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

Note

보호된 태그를 생성하거나 삭제하려면 해당 보호된 태그의 Allowed to create 목록에 있어야 합니다.

보호된 태그 구성#

사전 요구사항:

  • 프로젝트에 대한 Maintainer 또는 Owner 권한이 있어야 합니다.
  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 목록에 표시됩니다.

보호된 태그에 그룹 추가#

그룹 또는 하위 그룹의 멤버를 보호된 태그를 생성할 수 있도록 설정하려면:

  1. 왼쪽 사이드바에서 Search or go를 선택하고 프로젝트를 찾습니다.

  2. Settings > Repository를 선택합니다.

  3. Protected tags를 펼칩니다.

  4. 다음 필드에 그룹을 추가합니다:

    # Allow group members to create protected tags
    Allowed to create: @group-x
    

그룹 상속 및 자격#

Mermaid 다이어그램 (8줄)
소스 코드 보기
%%{init: { "fontFamily": "GitLab Sans" }}%%
graph TD
    accTitle: Diagram of group inheritance for protected tags
    accDescr: If a project is shared with a group, the group members inherit permissions for protected tags.
    A[Parent group X] -->|owns| B[Project A]
    A -->|contains| C[Subgroup Y]
    B -->|shared with| C
    C -->|members inherit permissions| B

이 예시에서:

  • 상위 그룹 X(group-x)는 프로젝트 A를 소유합니다.
  • 상위 그룹 X에는 하위 그룹 Y(group-x/subgroup-y)도 포함됩니다.
  • 프로젝트 A는 하위 그룹 Y와 공유됩니다.

보호된 태그 권한에 적격한 그룹은:

  • 프로젝트 A: 그룹 X와 하위 그룹 Y 모두, 프로젝트 A가 하위 그룹 Y와 공유되기 때문입니다.

그룹과 프로젝트 공유#

그룹 또는 하위 그룹과 프로젝트를 공유하여 해당 멤버들이 보호된 태그 권한에 적격하도록 할 수 있습니다.

Mermaid 다이어그램 (10줄)
소스 코드 보기
%%{init: { "fontFamily": "GitLab Sans" }}%%
graph LR
    accTitle: Diagram of project sharing for protected tag permissions
    accDescr: Sharing a project with a group affects whether their members can have protected tag permissions.
    A[Parent group X] -->|owns| B[Project A]
    A -->|also contains| C[Subgroup Y]
    C -.->D{Share Project A<br/>with Subgroup Y?} -.->|yes| E[Members of Subgroup Y<br/>can have protected<br/>tag permissions]
    D{Share Project A<br/>with Subgroup Y?} -.->|no| F[Members of Subgroup Y<br />cannot have protected<br/>tag permissions]
    E -.->|Add Subgroup Y<br/> to protected tag settings| I[Subgroup Y members<br/>can create tags] -.-> B
    F -.-> |Add Subgroup Y<br/> to protected tag settings| J[Settings will not<br/>take effect] -.-> B

프로젝트 A에 대한 하위 그룹 Y 멤버의 접근 권한을 부여하려면 하위 그룹과 프로젝트를 공유해야 합니다. 하위 그룹을 보호된 태그 설정에 직접 추가하는 것은 효과적이지 않으며 하위 그룹 멤버에게는 적용되지 않습니다.

Note

그룹이 보호된 태그 권한을 갖기 위해서는 프로젝트가 해당 그룹과 직접 공유되어야 합니다. 상위 그룹의 상속된 프로젝트 멤버십은 보호된 태그 권한에 충분하지 않습니다.

와일드카드 보호 태그#

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

와일드카드 보호 태그 일치하는 태그
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은 일치하는 모든 태그 목록을 표시합니다.

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

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

사전 요구사항:

  • 배포 키가 프로젝트에 대해 활성화되어 있어야 합니다. 프로젝트 배포 키는 생성될 때 기본적으로 활성화됩니다. 그러나 공개 배포 키는 프로젝트에 대한 접근 권한을 부여받아야 합니다.
  • 배포 키는 프로젝트 리포지터리에 대한 쓰기 접근 권한이 있어야 합니다.
  • 배포 키의 소유자는 프로젝트에 대한 최소 읽기 접근 권한이 있어야 합니다.
  • 배포 키의 소유자는 프로젝트의 멤버여야 합니다.

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

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > Repository를 선택합니다.
  3. Protected tags를 펼칩니다.
  4. Tag 드롭다운 목록에서 보호하려는 태그를 선택합니다.
  5. Allowed to create 목록에서 배포 키를 선택합니다.
  6. Protect를 선택합니다.

브랜치 이름으로 태그 생성 방지#

동일한 이름을 가진 태그와 브랜치는 다른 커밋을 포함할 수 있습니다. 태그와 브랜치가 동일한 이름을 사용하는 경우 git checkout 명령을 실행하는 사용자가 브랜치 qa를 체크아웃하려 했는데 실수로 태그 qa를 체크아웃할 수 있습니다. 추가적인 보안 조치로서 브랜치와 동일한 이름으로 태그를 생성하지 마세요. 두 가지를 혼동하면 잠재적인 보안 또는 운영 이슈가 발생할 수 있습니다.

이 문제를 방지하려면:

  1. 태그로 사용하지 않으려는 브랜치 이름을 식별합니다.

  2. 보호된 태그 구성에 설명된 대로 보호된 태그를 생성합니다:

    • Name에는 stable과 같은 이름을 제공합니다. stable-v1stable-v2와 같은 여러 이름을 매칭하기 위해 stable-*와 같은 와일드카드를 생성할 수도 있습니다.
    • Allowed to Create에는 No one을 선택합니다.
    • Protect를 선택합니다.

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

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

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

  • CI/CD 파이프라인을 시작하고 실행합니다.
  • 이러한 태그와 관련된 job에 대한 작업을 실행합니다.

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

태그 보호 해제#

보호 규칙을 제거하여 태그를 보호 해제할 수 있습니다. 이 작업은 보호 구성을 제거하는 것이지 태그 자체를 제거하는 것이 아닙니다. 태그는 리포지터리에 남아 있지만 더 이상 보호되지 않습니다.

사전 요구사항:

  • Maintainer 또는 Owner 권한이 있어야 합니다.

태그를 보호 해제하려면:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Settings > Repository를 선택합니다.
  3. Protected tags를 펼칩니다.
  4. 제거하려는 보호된 태그 규칙 옆에서 Unprotect를 선택합니다.
Warning

태그 패턴 보호를 해제하면 Developer, Maintainer, 또는 Owner 권한을 가진 모든 사용자가 해당 패턴과 일치하는 태그를 삭제할 수 있습니다.

보호된 태그 삭제#

보호 규칙이 적용된 태그를 삭제할 수 있습니다. 이는 보호 규칙이 아닌 리포지터리에서 태그를 제거합니다. 태그를 삭제하지 않고 보호 규칙을 제거하려면 태그 보호 해제를 참조하세요.

사전 요구사항:

  • 해당 태그에 대한 권한 또는 사용자의 Allowed to create 목록에 있어야 합니다.
  • 프로젝트에서 Maintainer 또는 Owner 권한.

보호된 태그를 삭제하려면:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Code > Tags를 선택합니다.
  3. 삭제하려는 태그 옆에서 Delete ([remove])를 선택합니다.
  4. 확인 대화 상자에서 태그 이름을 입력하고 Yes, delete protected tag를 선택합니다.

보호된 태그는 UI 또는 API를 통해 GitLab을 사용해서만 삭제할 수 있습니다. 이러한 보호 기능은 로컬 Git 명령 또는 서드파티 Git 클라이언트를 통해 실수로 태그를 삭제하는 것을 방지합니다.

관련 주제#