내장 프로젝트 템플릿에 기여하기

GitLab은 새로운 프로젝트를 만들 때 사용할 수 있는 내장 프로젝트 템플릿를 제공합니다.

내장 템플릿은 다음 그룹에서 가져옵니다:

필수 조건:

  • 작동하는 GitLab Development Kit (GDK) 환경이 있어야 합니다. 특히 PostgreSQL, Praefect, 그리고 sshd가 작동해야 합니다.
  • wget가 설치되어 있어야 합니다.

새로운 내장 프로젝트 템플릿 추가하기

GitLab과 함께 배포할 새로운 내장 프로젝트 템플릿에 기여하고 싶다면 몇 가지 단계가 있습니다.

프로젝트 생성

  1. 선택한 네임스페이스에 내게 기여하고 싶은 프로젝트 콘텐츠로 새로운 공개 프로젝트를 생성하세요. 작동 예시를 확인할 수 있습니다.
    • 프로젝트는 가급적 가능한 간단하며 불필요한 자산이나 의존성이 없어야 합니다.
  2. 프로젝트가 검토 준비가 되면, 새 이슈를 생성하고 프로젝트 링크를 첨부하세요.
    • 이슈 내에서 Create:Source Code 그룹의 관련 Backend Engineering Manager 및 Product Manager에게 @ 언급하세요.

gitlab-svgs에 로고 추가

모든 템플릿은 gitlab-svgs 라이브러리에서 아이콘을 가져옵니다. 따라서 추가한 템플릿의 아이콘이 없는 경우, 제출해야 합니다.

서드파티 로고 추가 방법을 참조하세요.

로고가 main 브랜치에 추가되면, 이 새 릴리스를 가져와 gitlab-org/gitlab에서 MR을 생성합니다. 이제 다음 단계로 진행할 수 있습니다.

템플릿 세부 정보 추가

GitLab 내에서는 두 가지 유형의 내장 템플릿을 제공합니다.

  • 표준 템플릿: 모든 GitLab 계층에서 사용 가능.
  • Enterprise 템플릿: GitLab Premium 및 Ultimate에서만 사용 가능.

새로운 프로젝트 템플릿을 생성하려면 적절한 템플릿을 만들기 위해 vendoring 프로세스를 따라야 합니다.

표준 템플릿

비고: 예시로 25318 MR을 참조하세요.

표준 템플릿을 기여하려면:

  1. 다음 구조를 사용하여 lib/gitlab/project_template.rblocalized_templates_table 메서드에 템플릿 세부 정보를 추가하세요.

    ProjectTemplate.new('<template_name>', '<template_short_description>', _('<template_long_description>'), '<template_project_link>', 'illustrations/logos/<template_logo_name>.svg'),
    
  2. app/assets/javascripts/projects/default_project_templates.js에 템플릿 세부 정보를 추가하세요.
  3. 템플릿 이름을 spec/support/helpers/project_template_test_helper.rb에 추가하세요.

Enterprise 템플릿

비고: 예시로 28187 MR을 참조하세요.

Enterprise 템플릿을 기여하려면:

  1. 다음 구조를 사용하여 ee/lib/ee/gitlab/project_template.rblocalized_ee_templates_table 메서드에 템플릿 세부 정보를 추가하세요.

    ProjectTemplate.new('<template_name>', '<template_short_description>', _('<template_long_description>'), '<template_project_link>', 'illustrations/logos/<template_logo_name>.svg'),
    
  2. ee/spec/lib/gitlab/project_template_spec.rb에서 let(:enterprise_templates) 디렉터리에 템플릿 이름을 추가하세요.
  3. ee/app/assets/javascripts/projects/default_project_templates.js에 템플릿 세부 정보를 추가하세요.

템플릿 세부 정보 작성

  1. GDK를 시작합니다.

    gdk start
    
  2. 다음을 실행하세요. 여기서 <template_name>gitlab/project_template.rb에서 템플릿에 지정한 이름입니다.

    bin/rake "gitlab:update_project_templates[<template_name>]"
    
  3. gitlab 프로젝트에서 로컬라이제이션 파일을 재생성하고 새 .pot 파일을 커밋하세요.

    bin/rake gettext:regenerate
    
  4. 커밋 메시지에 변경 로그 항목을 추가하세요 (예: Changelog: added). 자세한 내용은 Changelog entries를 참조하세요.

기존 내장 프로젝트 템플릿 업데이트하기

변경 사항을 기여하려면:

  1. 관련 프로젝트에서 새 MR을 열고 다음 코멘트를 남기세요.

    @gitlab-org/manage/import/backend this is a contribution to update the project
    template and is ready for review!
       
    @gitlab-bot ready
    
  2. 만약 MR이 승인되면:

GitLab 팀원을 위한 안내

모든 MR이 Merge되기 전에 보안 상대방에 의해 검토되었는지 확인하세요.

모든 템플릿 업데이트

템플릿에서 프로젝트를 시작하려면 이 프로젝트를 먼저 내보내야 합니다. 최신 상태의 기본 브랜치에서 다음을 실행하세요:

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

이제 MR을 작성하여 보안 상대방에게 할당하십시오.

특정 템플릿 업데이트

모든 템플릿을 업데이트하는 대신 단일 템플릿을 업데이트하려면 대괄호 안에 템플릿 이름을 지정하세요. 예를 들어 jekyll 템플릿의 경우 다음을 실행하세요:

bin/rake "gitlab:update_project_templates[jekyll]"

템플릿 MR 검토

하나 이상의 vendored 프로젝트 템플릿을 변경하는 MR을 검토하려면 check-template-changes 스크립트를 실행하세요.

scripts/check-template-changes vendor/project_templates/<template_name>.tar.gz

이 스크립트는 파일 변경 사항의 차이를 출력하고, 템플릿 리포지터리가 소스 템플릿 프로젝트와 일치하는지도 확인합니다.