내장된 프로젝트 템플릿에 기여하기
GitLab은 내장된 프로젝트 템플릿 를 제공하여 새 프로젝트를 만들 때 사용할 수 있습니다.
내장된 템플릿은 다음 그룹에서 구성됩니다:
필수 조건:
- 작동하는 GitLab Development Kit (GDK) 환경이 있어야 합니다.
특히, PostgreSQL, Praefect, 그리고
sshd
가 작동해야 합니다. -
wget
이 설치되어 있어야 합니다.
새 내장 프로젝트 템플릿 추가
GitLab과 함께 배포할 새로운 내장 프로젝트 템플릿에 기여하고 싶다면, 몇 가지 단계를 따르어야 합니다.
프로젝트 생성
- 자신이 원하는 네임스페이스에 원하는 프로젝트 내용으로 새로운 공개 프로젝트를 만듭니다. 작동하는 예시를 확인할 수 있습니다.
- 프로젝트는 불필요한 에셋이나 종속성이 없어야 합니다.
- 프로젝트가 검토를 받을 준비가 되면, 새 이슈를 만듭니다 이때 프로젝트의 링크를 포함합니다.
- 이슈에서 Create:Source Code 그룹의 관련 Backend Engineering Manager 및 Product Manager에게
@
을 언급합니다.
- 이슈에서 Create:Source Code 그룹의 관련 Backend Engineering Manager 및 Product Manager에게
gitlab-svgs
에 로고 추가
모든 템플릿은 자신이 추가한 템플릿의 아이콘을
gitlab-svgs
라이브러리에서 가져옵니다. 따라서 추가한 템플릿의 아이콘이 없으면 제출해야 합니다.
서드파티 로고를 추가하는 방법을 참조하세요.
로고가 main
브랜치에 추가되면,
봇이 새 릴리스를 가져와 gitlab-org/gitlab
에서 MR을 만듭니다. 이제 다음 단계로 진행할 수 있습니다.
템플릿 세부 정보 추가
GitLab에는 두 가지 유형의 내장된 템플릿이 있습니다:
- 표준 템플릿: 모든 GitLab 티어에서 사용 가능합니다.
- 엔터프라이즈 템플릿: GitLab Premium 및 Ultimate에서만 사용 가능합니다.
새 프로젝트를 만들 때 템플릿을 사용할 수 있도록 하려면 작동하는 템플릿을 만들기 위해 vendoring 프로세스를 따라야 합니다.
표준 템플릿
참고: 예시로 25318 MR을 참조하세요.
표준 템플릿을 기여하려면:
-
다음 스키마를 사용하여
lib/gitlab/project_template.rb
의localized_templates_table
메소드에 템플릿의 세부 정보를 추가합니다:ProjectTemplate.new('<template_name>', '<template_short_description>', _('<template_long_description>'), '<template_project_link>', 'illustrations/logos/<template_logo_name>.svg'),
-
app/assets/javascripts/projects/default_project_templates.js
에 템플릿의 세부 정보를 추가합니다. - 템플릿 이름을
spec/support/helpers/project_template_test_helper.rb
에 추가합니다.
엔터프라이즈 템플릿
참고: 예시로 28187 MR을 참조하세요.
엔터프라이즈 템플릿을 기여하려면:
-
다음 스키마를 사용하여
ee/lib/ee/gitlab/project_template.rb
의localized_ee_templates_table
메소드에 템플릿의 세부 정보를 추가합니다:ProjectTemplate.new('<template_name>', '<template_short_description>', _('<template_long_description>'), '<template_project_link>', 'illustrations/logos/<template_logo_name>.svg'),
-
ee/spec/lib/gitlab/project_template_spec.rb
의let(:enterprise_templates)
목록에 템플릿 이름을 추가합니다. -
ee/app/assets/javascripts/projects/default_project_templates.js
에 템플릿의 세부 정보를 추가합니다.
템플릿 세부 정보 채우기
-
GDK를 시작합니다:
gdk start
-
다음을
gitlab
프로젝트에서 실행합니다. 여기서<template_name>
은gitlab/project_template.rb
에서 지정한 이름입니다:bin/rake "gitlab:update_project_templates[<template_name>]"
-
gitlab
프로젝트에서 로컬 파일을 재생성하고 새.pot
파일을 커밋합니다:bin/rake gettext:regenerate
-
커밋 메시지에 변경 내역 항목을 추가합니다 (예:
Changelog: added
). 자세한 정보는 Changelog entries를 참조하세요.
기존 내장 프로젝트 템플릿 업데이트
변경을 기여하려면:
-
관련 프로젝트에서 MR을 열고 다음 주석을 남깁니다. 검토를 받을 준비가 되면:
@gitlab-org/manage/import/backend this is a contribution to update the project template and is ready for review! @gitlab-bot ready
-
만약 MR이 승인된다면:
-
이를 업데이트할 것을 요청하는 이슈를 엽니다 - 또는 vendored 템플릿을 업데이트하고 MR을 엽니다:
bin/rake "gitlab:update_project_templates[<template_name>]"
-
GitLab 개발 킷 내장 프로젝트를 테스트하세요
다음 단계를 완료하여 자체 GDK 인스턴스에서 프로젝트 템플릿을 테스트합니다:
-
GDK를 시작하세요:
gdk start
-
다음 Rake 작업을 실행하세요. 이때
<template_name>
은lib/gitlab/project_template.rb
의 템플릿 이름입니다:bin/rake "gitlab:update_project_templates[<template_name>]"
-
브라우저에서 GitLab을 방문하고, 프로젝트 템플릿을 선택하여 새 프로젝트를 생성하세요.
GitLab 팀 멤버를 위한
모든 병합 요청이 병합되기 전에 보안 담당자에 의해 검토되었는지 확인하세요.
모든 템플릿 업데이트
템플릿에서 프로젝트를 시작하기 위해서 이 프로젝트를 내보내야합니다. 최신 상태의 기본 브랜치에서 다음을 실행하세요:
gdk start # postgres, praefect, and sshd가 필요합니다
bin/rake gitlab:update_project_templates
git checkout -b update-project-templates
git add vendor/project_templates
git commit
git push -u origin update-project-templates
이제 병합 요청을 생성하고 보안 담당자에게 할당하여 병합하세요.
단일 템플릿 업데이트
모든 템플릿이 아닌 단일 템플릿만 업데이트하려면 대괄호 사이에 템플릿 이름을 지정하세요. 예를 들어, jekyll
템플릿의 경우 다음을 실행하세요:
bin/rake "gitlab:update_project_templates[jekyll]"
템플릿 병합 요청 검토
하나 이상의 판매용 프로젝트 템플릿을 변경하는 병합 요청을 확인하려면 check-template-changes
스크립트를 실행하세요:
scripts/check-template-changes vendor/project_templates/<template_name>.tar.gz
이 스크립트는 파일 변경 사항에 대한 차이를 출력하고, 템플릿 리포지토리가 소스 템플릿 프로젝트와 일치하는지도 확인합니다.