조직 개발 가이드
GitLab 조직(Organization) 개발 지침으로, 현재 단계의 목표, 데이터베이스 설계, Current.organization 사용법, 라우팅, 격리 테스트, 프론트엔드 가이드라인을 설명합니다.
조직 이니셔티브 는 GitLab.com과 GitLab Self-Managed 간의 기능 동등성(feature parity) 달성에 초점을 맞추고 있습니다. 현재 단계 (FY27-Q1 및 FY27-Q2): 기능 동등성 # 현재 개발 초점은 조직에 대한 기능 동등성 을 달성하는 것입니다. 이는 조직 내 그룹에서 기존 기능이 작동하여, 조직으로 이전하는 사용자가 기능을 잃지 않도록 보장하는 것을 의미합니다. 조직은 아직 새로운 기능을 위한 준비가 되지 않았습니다. 새로운 기능은 계속해서 다음을 대상으로 해야 합니다: GitLab.com : 최상위 그룹 GitLab Self-Managed : 인스턴스 레벨 조직에서 새로운 기능을 개발하거나 기존 기능을 최상위 그룹에서 조직으로 마이그레이션하는 방법에 대한 가이드는 향후 제공될 예정입니다. 비공식적으로 논의하고 싶다면 Slack( #g_organizations )에서 팀에 문의하세요. 조직 구현을 위한 사용 가능 및 계획된 지원 # Organizations 팀은 다음에 대한 지원을 자동으로 포함하는 변경 사항을 구현하고 있습니다: 애플리케이션 레벨 조직 격리: Organization Scoping 을 처리하는 ActiveRecord 확장 기능이 제공될 예정입니다. 이는 FY27-Q2 초반에 사용 가능하도록 잠정적으로 계획되어 있습니다. Sidekiq: organization_id 를 Sidekiq worker 파라미터에 전달할 필요가 없습니다. Sidekiq worker는 스케줄링 컨텍스트에서 Current Organization을 상속합니다. 이벤트 / 로깅: User, Project, Namespace와 유사하게 Organization이 포함될 예정입니다. 라우팅: 조직 기반 URL( /o/<organization> 접두사)의 활성화/비활성화가 가능해질 예정입니다. 테스트에서의 조직 사용 가능성 특별한 이유가 없는 한, 팀에서 이를 직접 구현할 필요가 없습니다. 데이터베이스 테이블 설계 # 샤딩 가이드라인 을 참조하세요. Current.organization 사용 # Current.organization 이 요청 레이어에서 올바르게 설정되어 있는지 확인하세요. 자동으로 설정되지 않는 경우에는 아래 단계를 따르세요. Current.organization 이 설정되면 ActiveRecord 확장 기능( gitlab-database-data_isolation )이 이 컨텍스트를 사용하여 해당 조직으로 쿼리를 조건부로 범위 지정합니다. Current.organization을 사용할 수 있는 곳 # Current.organization 은 다음 컨텍스트에서 사용할 수 있습니다. 일부는 자동으로 설정되고, 나머지는 set_current_organization 을 명시적으로 호출해야 합니다. 자동 설정 (플랫폼 전체): 컨트롤러 — ApplicationController 에는 모든 요청에 대해 실행되는 before_action :set_current_organization 이 포함되어 있습니다.