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 패턴일 수도 있어요.