InfoGrab DocsInfoGrab Docs

커스텀 그룹 레벨 프로젝트 템플릿 개발 가이드라인

커스텀 그룹 레벨 프로젝트 템플릿 기능의 코드 설계와 주요 컴포넌트 구조를 설명합니다.

이 문서는 컨트리뷰터가 커스텀 그룹 레벨 프로젝트 템플릿 의 코드 설계를 이해하는 데 도움을 주기 위해 작성되었습니다. 이 기능의 코드를 변경하기 전에 이 문서를 읽어야 합니다. 이 문서는 코드가 자주 변경될 수 있으므로 의도적으로 코드 설계 개요에 한정됩니다. 특정 기능 부분이 어떻게 동작하는지 이해하려면 코드와 스펙을 확인하세요. 여기에서는 템플릿 기능의 주요 컴포넌트가 어떻게 동작하는지 설명합니다. 이 문서에서 참조하는 코드베이스의 일부가 업데이트되거나 제거되거나, 새로운 부분이 추가되면 이 문서도 함께 업데이트해야 합니다. 기본 개요 # 커스텀 그룹 레벨 프로젝트 템플릿은 내보내기(export)한 후 새로 생성된 프로젝트로 가져오기(import)되는 일반 프로젝트입니다. Subgroup1 이라는 템플릿 하위 그룹을 포함하는 Group1 이 있다고 가정합니다. Subgroup1 안에 Template1 이라는 프로젝트가 있습니다. User1 이 Template1 을 사용하여 Group1 안에 Project1 을 생성할 때, 로직은 다음 단계를 따릅니다: Project1 초기화 Template1 내보내기 Project1 로 가져오기 비즈니스 로직 # ProjectsController#create : 흐름이 시작되는 컨트롤러 app/controllers/projects_controller.rb 에 정의되어 있습니다. Projects::CreateService : 프로젝트 생성을 처리합니다. app/services/projects/create_service.rb 에 정의되어 있습니다. EE::Projects::CreateService : 생성 서비스의 EE 확장 ee/app/services/ee/projects/create_service.rb 에 정의되어 있습니다. Projects::CreateFromTemplateService : 커스텀 프로젝트 템플릿으로부터 프로젝트 생성을 처리합니다. app/services/projects/create_from_template_service.rb 에 정의되어 있습니다. EE:Projects::CreateFromTemplateService : 템플릿에서 생성 서비스의 EE 확장 ee/app/services/ee/projects/create_from_template_service.rb 에 정의되어 있습니다. Projects::GitlabProjectsImportService : 템플릿 가져오기를 처리합니다. app/services/projects/gitlab_projects_import_service.rb 에 정의되어 있습니다. EE::Projects::GitlabProjectsImportService : 가져오기 서비스의 EE 확장 ee/app/services/ee/projects/gitlab_projects_import_service.rb 에 정의되어 있습니다. ProjectTemplateExportWorker : 커스텀 템플릿 내보내기를 처리합니다. ee/app/workers/project_temp