내장 프로젝트 템플릿에 기여하기
GitLab은 새 프로젝트를 생성할 때 사용할 수 있는 내장 프로젝트 템플릿을 제공합니다.
내장 템플릿은 다음 그룹에서 가져옵니다:
사전 조건:
- 작동하는 GitLab Development Kit (GDK) 환경이 필요합니다.
특히 PostgreSQL, Praefect 및
sshd
가 작동해야 합니다. -
wget
가 설치되어 있어야 합니다.
새로운 내장 프로젝트 템플릿 추가
GitLab과 함께 배포할 새로운 내장 프로젝트 템플릿에 기여하고 싶다면, 따라야 할 몇 가지 단계가 있습니다.
프로젝트 생성
- 기여하고 싶은 프로젝트 내용을 가진 공개 프로젝트를 선택한 네임스페이스에 생성하세요. 작동 예시를 볼 수 있습니다.
- 프로젝트는 불필요한 자산이나 의존성 없이 생성되어야 합니다.
- 프로젝트가 검토 준비가 되면 새 문제를 생성하여 프로젝트 링크를 포함하세요.
- 이슈에서 관련 백엔드 엔지니어링 매니저와 Create:Source Code group 제품 매니저에게
@
멘션하세요.
- 이슈에서 관련 백엔드 엔지니어링 매니저와 Create:Source Code group 제품 매니저에게
gitlab-svgs
에 로고 추가
모든 템플릿은
gitlab-svgs
라이브러리에서 아이콘을 가져오므로, 추가하는 템플릿의 아이콘이 없는 경우, 제출해야 합니다.
第三方 로고 추가 방법을 참조하세요.
로고가 main
브랜치에 추가된 후,
봇이 새로운 릴리스를 가져와 gitlab-org/gitlab
에 MR을 생성합니다. 이제 다음 단계로 진행할 수 있습니다.
템플릿 세부 정보 추가
GitLab에서는 두 가지 유형의 내장 템플릿을 제공합니다:
- 표준 템플릿: 모든 GitLab 티어에서 사용 가능.
- 엔터프라이즈 템플릿: GitLab Premium 및 Ultimate에서만 사용 가능.
새 프로젝트를 생성할 때 프로젝트 템플릿을 사용 가능하게 하려면, 작동하는 템플릿을 만들기 위해 벤더링 프로세스를 따라야 합니다.
표준 템플릿
참고: 25318 병합 요청을 참고하세요.
표준 템플릿에 기여하려면:
-
다음 방식으로
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
에서 템플릿 이름을 추가합니다.
엔터프라이즈 템플릿
엔터프라이즈 템플릿에 기여하려면:
-
localized_ee_templates_table
메서드에 템플릿의 세부 정보를 추가하세요ee/lib/ee/gitlab/project_template.rb
에서 다음 스킴을 사용하세요: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
).
자세한 내용은 변경 로그 항목을 참조하세요.
기존의 내장 프로젝트 템플릿 업데이트
변경 사항에 기여하려면:
-
관련 프로젝트에서 병합 요청을 열고, 리뷰를 받을 준비가 되었을 때 다음 댓글을 남기세요:
@gitlab-org/manage/import/backend 이것은 프로젝트 템플릿을 업데이트하기 위한 기여이며, 리뷰 준비가 되었습니다! @gitlab-bot ready
-
만약 당신의 병합 요청이 수락된다면:
- 이슈를 열어 업데이트를 요청하세요.
-
또는 벤더 템플릿을 업데이트하고 병합 요청을 여세요:
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, 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
이 스크립트는 기본 브랜치에 대한 파일 변경 사항의 diff를 출력하고 템플릿 리포지토리가 소스 템플릿 프로젝트와 일치하는지 검증합니다.