본문 바로가기
WIKI 기술 지식 베이스

Gerrit Discovery

원문 보기 위키 갱신

Gerrit 통합에는 Gerrit 저장소에서 카탈로그 엔티티를 발견하기 위한 특별한 엔티티 제공자가 있어요. 제공자는 Gerrit의 "List Projects" API를 사용해 저장소 목록을 가져오고, 일치하는 프로젝트의 루트에 저장된 모든 catalog-info.yaml 파일을 자동으로 수집해요.

출처: 문서

본문

Gerrit 통합에는 Gerrit 저장소에서 카탈로그 엔티티를 발견하기 위한 특별한 엔티티 제공자가 있어요. 제공자는 Gerrit의 "List Projects" API를 사용해 저장소 목록을 가져오고, 일치하는 프로젝트의 루트에 저장된 모든 catalog-info.yaml 파일을 자동으로 수집해요.

설치

이 제공자는 기본 제공자 중 하나가 아니므로 먼저 Gerrit 제공자 플러그인을 설치해야 해요.

Backstage 루트 디렉터리에서

yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-gerrit

그런 다음 다음 줄을 추가해 백엔드를 업데이트하세요.

packages/backend/src/index.ts

backend.add(import('@backstage/plugin-catalog-backend'));backend.add(import('@backstage/plugin-catalog-backend-module-gerrit'));

구성

discovery 프로세서를 사용하려면 Gerrit 통합이 설정되어 있어야 해요. 그런 다음 원하는 만큼 제공자를 추가할 수 있어요.

# app-config.yamlcatalog:  providers:    gerrit:      yourProviderId: # identifies your dataset / provider independent of config changes        host: gerrit-your-company.com        branch: master # Optional, defaults to the repository's default branch        query: 'state=ACTIVE&prefix=webapps'        catalogPath: 'catalog-info.yaml' # Optional, defaults to catalog-info.yaml        schedule:          # supports cron, ISO duration, "human duration" as used in code          frequency: { minutes: 30 }          # supports ISO duration, "human duration" as used in code          timeout: { minutes: 3 }      backend:        host: gerrit-your-company.com        branch: master # Optional        query: 'state=ACTIVE&prefix=backend'        # catalogPath can be a glob-pattern supported by the minimatch library        catalogPath: '{**/catalog-info.{yml,yaml},**/.catalog-info/*.{yml,yaml}}'

제공자 구성은 다음 부분으로 이루어져요.

  • host: 사용할 Gerrit 통합의 호스트.

  • branch (선택): 카탈로그 엔티티를 찾을 브랜치(기본값은 저장소의 기본 브랜치).

  • query: 이 문자열은 "List Project" API의 인수로 직접 사용돼요. 보통은 카탈로그 파일을 절대 포함하지 않을 프로젝트를 제외하도록 여기에 필터가 있기를 원할 거예요.

  • catalogPath: Backstage 매니페스트가 저장된 저장소 루트 기준 상대 경로. 여러 파일을 로드하려면 minimatch가 지원하는 glob 패턴일 수도 있어요.

더 알아보기 (Learn more)