InfoGrab DocsInfoGrab Docs

라우팅

GitLab 백엔드의 Rails 라우팅 규칙과 그룹, 프로젝트, 조직 경로에서의 `/-/` 스코프 사용 방법 및 기존 라우트 변경 절차를 설명합니다.

GitLab 백엔드는 주로 Rails로 작성되어 있으므로 Rails 라우팅 을 사용합니다. Rails의 모범 사례 외에도 GitLab 애플리케이션 고유의 몇 가지 규칙이 있습니다. 하위 그룹을 지원하기 위해 GitLab 프로젝트 및 그룹 라우트는 와일드카드 문자를 사용하여 프로젝트 및 그룹 라우트를 매칭합니다. 예를 들어, 다음과 같은 경로가 있을 수 있습니다: /gitlab-com/customer-success/north-america/west/customerA 그러나 경로는 모호할 수 있습니다. 다음 예시를 살펴보세요: /gitlab-com/edit edit 이라는 이름의 하위 그룹이 있는 것인지, 아니면 gitlab-com 그룹을 편집하기 위한 특수 엔드포인트인지 모호합니다. 이러한 모호함을 없애고 백엔드를 더 쉽게 유지 관리하기 위해 /-/ 스코프를 도입했습니다. 이 스코프의 목적은 그룹 또는 프로젝트 경로를 나머지 라우트와 분리하는 것입니다. 또한 예약된 이름 의 수를 줄이는 데도 도움이 됩니다. 사용 가능한 모든 라우트 보기 # 콘솔에서 다음 명령을 실행하여 라우트를 보고 찾을 수 있습니다: rails routes | grep crm 브라우저에서 http://gdk.test:3000/rails/info/routes 로 이동하여 라우트를 볼 수도 있습니다. 전역 라우트 # 여러 전역 라우트가 있습니다. 예를 들면: /-/health /-/metrics 그룹 라우트 # 모든 그룹 라우트는 /-/ 스코프 아래에 있어야 합니다. 예시: gitlab-org/-/edit gitlab-org/-/activity gitlab-org/-/security/dashboard gitlab-org/serverless/-/activity 이를 위해 scope '-' 메서드를 사용합니다. 프로젝트 라우트 # Git 클라이언트 또는 다른 소프트웨어에서 다른 형식을 요구하는 경우를 제외하고, 모든 프로젝트 라우트는 /-/ 스코프 아래에 있어야 합니다. 예시: gitlab-org/gitlab/-/activity gitlab-org/gitlab/-/jobs/123 gitlab-org/gitlab/-/settings/repository gitlab-org/serverless/runtimes/-/settings/repository 조직 라우트 # 조직 스코프 라우트는 /o/:organization_path/*path 패턴을 사용합니다. 이러한 라우트는 config/routes.rb 에서 조직 스코프 내의 모든 기존 라우트를 재정의함으로써 생성됩니다. 예시: /o/my-org/projects /o/my-org/groups /o/my-org/-/settings 모든 라우트는 config/routes.rb 의 스코프 블록을 사용하여 /o/:organization_path 접두사 아래에 재정의됩니다. 예를 들어, /o/my-org/projects 는 조직 컨텍스트를 요청 전반에 걸쳐 보존하면서 /projects 와 동일한 컨트롤러로 라우팅됩니다. 이 방식은 별도의 컨트롤