그룹의 사용자 정의 프로젝트 템플릿
GitLab v19.3Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
프로젝트를 생성할 때 템플릿 목록에서 선택할 수 있습니다. 그룹의 모든 프로젝트가 동일한 목록을 갖도록 사용 가능한 템플릿 목록을 사용자 정의할 수 있습니다. 인스턴스용 사용자 정의 템플릿도 구성할 수 있습니다. 그룹에서 사용자 정의 프로젝트 템플릿을 설정하려면 프로젝트 템플릿이 포함된 서브그룹을 그룹 설정에 추가합니다:
히스토리
프로젝트를 생성할 때 템플릿 목록에서 선택할 수 있습니다. GitLab Pages나 Ruby 같은 것들을 위한 이 템플릿은 새 프로젝트에 템플릿에 포함된 파일의 복사본을 채웁니다. 이 정보는 GitLab 프로젝트 가져오기/내보내기에 사용되는 정보와 동일하며 새 프로젝트를 더 빠르게 시작하는 데 도움이 될 수 있습니다.
그룹의 모든 프로젝트가 동일한 목록을 갖도록 사용 가능한 템플릿 목록을 사용자 정의할 수 있습니다. 이를 위해 템플릿으로 사용할 프로젝트로 서브그룹을 채웁니다.
인스턴스용 사용자 정의 템플릿도 구성할 수 있습니다.
그룹에 프로젝트 템플릿 설정#
사전 요구 사항:
- 그룹에 대한 Owner 권한이 있어야 합니다.
그룹에서 사용자 정의 프로젝트 템플릿을 설정하려면 프로젝트 템플릿이 포함된 서브그룹을 그룹 설정에 추가합니다:
-
그룹에서 서브그룹을 생성합니다.
-
템플릿으로 사용할 새 서브그룹에 프로젝트를 추가합니다.
-
그룹의 왼쪽 메뉴에서 Settings > General을 선택합니다.
-
Custom project templates를 펼치고 서브그룹을 선택합니다.
다음에 그룹 구성원이 프로젝트를 생성할 때 서브그룹의 프로젝트 중 하나를 선택할 수 있습니다.
중첩된 서브그룹의 프로젝트는 템플릿 목록에 포함되지 않습니다.
템플릿으로 사용 가능한 프로젝트#
-
GitLab Pages 및 Security and compliance를 제외한 모든 프로젝트 기능이 Everyone With Access로 설정된 경우 공개 및 내부 프로젝트는 인증된 모든 사용자가 새 프로젝트의 템플릿으로 선택할 수 있습니다.
-
비공개 프로젝트는 해당 프로젝트의 구성원인 사용자만 선택할 수 있습니다.
그룹 컨텍스트 외부에서 프로젝트를 생성할 때 템플릿을 탐색하기 전에 드롭다운 목록에서 그룹을 선택해야 합니다. 액세스 권한이 있는 그룹만 나열됩니다.
구조 예시#
myorganization에 대한 프로젝트 템플릿의 샘플 그룹 및 프로젝트 구조입니다:
# GitLab instance and group
gitlab.com/myorganization/
# Subgroups
internal
tools
# Subgroup for handling project templates
websites
templates
# Project templates
client-site-django
client-site-gatsby
client-site-html
# Other projects
client-site-a
client-site-b
client-site-c
...
템플릿에서 복사되는 항목#
템플릿에서 프로젝트를 생성하면 내보낼 수 있는 모든 프로젝트 항목이 템플릿에서 새 프로젝트로 복사됩니다. 이 항목에는 다음이 포함됩니다:
-
저장소 브랜치, 커밋 및 태그.
-
프로젝트 업로드.
-
프로젝트 구성.
-
이슈와 머지 리퀘스트 및 댓글, 기타 메타데이터.
-
레이블, 마일스톤, 스니펫 및 릴리스.
-
CI/CD 파이프라인 구성.
복사되는 항목의 전체 목록은 내보내는 프로젝트 항목을 참조하세요.
권한 및 민감한 데이터#
복사 동작은 권한에 따라 다릅니다:
-
GitLab 관리자인 경우 프로젝트 구성원을 포함한 모든 프로젝트 설정이 새 프로젝트로 복사됩니다.
-
인스턴스의 사용자 정의 템플릿이 포함된 프로젝트에 대한 Owner 권한이 있지만 GitLab 관리자가 아닌 경우: 프로젝트 설정은 복사되지만 프로젝트 구성원은 복사되지 않습니다.
-
프로젝트에 대한 Owner 권한이 없고 GitLab 관리자도 아닌 경우: 프로젝트 배포 키와 프로젝트 웹훅은 민감한 데이터를 포함하고 있어 복사되지 않습니다.
템플릿이 복사될 때 보호된 브랜치 및 태그의 액세스 레벨도 영향을 받습니다:
-
새 프로젝트의 최상위 그룹에 대한 Owner 권한이 있거나 GitLab 관리자인 경우 이러한 액세스 레벨이 새 프로젝트로 복사됩니다.
-
그렇지 않으면 보호된 브랜치 및 태그의 액세스 레벨이 Maintainers로 재설정됩니다.
No one으로 설정된 액세스 레벨은 유지됩니다. 자세한 내용은 가져온 항목의 변경 사항을 참조하세요.
배포 키와 웹훅에는 민감한 시크릿이 포함되어 있습니다. 이 항목들은 프로젝트를 생성하는 아이덴티티가 템플릿 프로젝트에 대한 Owner 권한을 가지고 있거나 관리자 액세스 권한이 있는 경우에만 복사됩니다. API를 사용하여 템플릿에서 프로젝트를 생성하는 경우 이 아이덴티티는 토큰에 따라 달라집니다:
-
개인 액세스 토큰: 토큰 소유자의 권한을 사용합니다. 해당 사용자가 템플릿 프로젝트에 대한 Owner 권한을 가지고 있거나 관리자인 경우 배포 키와 웹훅이 복사됩니다.
-
그룹 액세스 토큰 또는 프로젝트 액세스 토큰: 봇 사용자로 동작합니다. 봇 사용자는 토큰을 생성한 그룹 또는 프로젝트의 구성원일 뿐입니다. 해당 범위에 템플릿 프로젝트가 포함되지 않으면 봇 사용자는 템플릿 프로젝트에 대한 Owner 권한이 없으므로 배포 키와 웹훅이 복사되지 않습니다. 이를 복사하려면 템플릿 프로젝트에 대한 Owner 권한이 있는 사용자의 개인 액세스 토큰을 사용하세요.
템플릿의 사용자 할당#
다른 사용자가 만든 템플릿을 사용하면 템플릿에서 사용자에게 할당된 항목이 귀하에게 재할당됩니다. 보호된 브랜치 및 태그 같은 보안 기능을 구성할 때 이 재할당을 이해하는 것이 중요합니다. 예를 들어 템플릿에 보호된 브랜치가 포함된 경우:
-
템플릿에서 브랜치는 템플릿 소유자가 기본 브랜치에 머지할 수 있도록 허용합니다.
-
템플릿에서 생성된 프로젝트에서 브랜치는 귀하가 기본 브랜치에 머지할 수 있도록 허용합니다.
템플릿이 복사될 때 보호된 브랜치 및 태그의 액세스 레벨도 영향을 받습니다. 자세한 내용은 권한 및 민감한 데이터를 참조하세요.
문제 해결#
관리자가 프로젝트 생성 시 그룹의 사용자 정의 프로젝트 템플릿을 볼 수 없음#
그룹의 사용자 정의 프로젝트 템플릿은 그룹 구성원에게만 사용 가능합니다. 사용 중인 관리자 계정이 그룹의 구성원이 아닌 경우 템플릿에 액세스할 수 없습니다.