InfoGrab DocsInfoGrab Docs

기능 분류

GitLab에서 Sidekiq 워커, Batched Background 마이그레이션, 컨트롤러 액션, API 엔드포인트, RSpec 예제에 feature_category 속성을 선언하는 방법을 설명합니다.

각 Sidekiq 워커, Batched Background 마이그레이션, 컨트롤러 액션, 테스트 예제 , API 엔드포인트는 feature_category 속성을 선언해야 합니다. 이 속성은 각 대상을 기능 카테고리 에 매핑합니다. 이는 오류 예산 관리, 알림 라우팅, 팀 귀속을 위한 것입니다. 기능 카테고리 목록은 config/feature_categories.yml 파일에서 확인할 수 있습니다. 이 파일은 GitLab 핸드북과 그 밖의 GitLab 리소스에서 사용하는 stages.yml 데이터 파일로부터 생성됩니다. config/feature_categories.yml 업데이트 # GitLab의 스테이지, 그룹, 제품 카테고리에 새 기능이 추가되는 경우가 있습니다. 이럴 때는 scripts/update-feature-categories 를 실행해 config/feature_categories.yml 을 자동으로 갱신할 수 있습니다. 이 스크립트는 stages.yml 을 가져와 파싱한 뒤 새 버전의 파일을 생성하며, 이 파일을 리포지터리에 커밋해야 합니다. 현재 feature_categories.yml 파일은 Observability 팀이 관리합니다. 파일이 오래되면 이 팀에 Slack으로 자동 알림이 전달됩니다. Gemfile # 각 Ruby gem 의존성마다 어떤 기능 카테고리가 그 의존성을 필요로 하는지 지정해야 합니다. 이렇게 하면 소유권이 분명해지고, 해당 기능을 소유한 그룹에 업그레이드를 맡길 수 있습니다. Tooling 기능 카테고리 # Developer Experience 내부 도구에는 feature_category: :tooling 을 사용합니다. 예를 들어 knapsack 과 gitlab-crystalball 은 둘 다 CI에서 RSpec 테스트 스위트를 실행하는 데 쓰이며 어떤 제품 그룹에도 속하지 않습니다. Test platform 기능 카테고리 # 엔드투엔드 테스트 인프라와 관련된 gem은 Development Experience 섹션이 관리합니다. 이때는 feature_category: :test_platform 레이블을 사용합니다. 예를 들어 capybara 는 UI가 관여하는 테스트를 실행하기 위해 Gemfile 과 qa/Gemfile 양쪽에 정의되어 있습니다. 이러한 gem은 특정 제품 그룹에 속하지 않습니다. Rails platform 기능 카테고리 # Rails 코어 프레임워크 gem은 주로 Backend Maintainer가 관리합니다. 예를 들어 rails 와 zeitwerk 는 :rails_platform 으로 정의해야 합니다. Shared 기능 카테고리 # Warning :shared 기능 카테고리는 gem에서 더 이상 지원되지 않습니다. gem을 잘 관리하기 위한 노력의 일환으로, 모든 gem은 구체적인 기능 카테고리를 사용해야 합니다. gem의 소유권이 불분명하다면 #backend_maintainers 채널에 문의합니다. Sidekiq 워커 # 선언에는 다음과 같이 feature_catego