Bitbucket Server Discovery
Bitbucket Server 통합에는 Bitbucket Server에 있는 카탈로그 파일을 발견하기 위한 특별한 엔티티 제공자가 있어요. 제공자는 Bitbucket Server 계정을 검색해서 구성된 경로에 일치하는 카탈로그 파일을 Location 엔티티로 등록하고, 이어지는 처리 단계를 통해 포함된 모든 카탈로그 엔티티를 추가해요. 이는 정적 위치를 쓰거나 카탈로그에 항목을 수동으로 추가하는 것의 대안으로 유용할 수 있어요.
출처: 문서
본문
Bitbucket Server 통합에는 Bitbucket Server에 있는 카탈로그 파일을 발견하기 위한 특별한 엔티티 제공자가 있어요. 제공자는 Bitbucket Server 계정을 검색해서 구성된 경로에 일치하는 카탈로그 파일을 Location 엔티티로 등록하고, 이어지는 처리 단계를 통해 포함된 모든 카탈로그 엔티티를 추가해요. 이는 정적 위치를 쓰거나 카탈로그에 항목을 수동으로 추가하는 것의 대안으로 유용할 수 있어요.
설치
백엔드의 카탈로그 초기화 코드에 엔티티 제공자를 추가해야 해요. 이 제공자는 기본으로 설치되지 않으므로 백엔드 패키지에 @backstage/plugin-catalog-backend-module-bitbucket-server에 대한 종속성을 추가해야 해요.
Backstage 루트 디렉터리에서
yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-bitbucket-server
그런 다음 백엔드에 다음을 추가하세요.
packages/backend/src/index.ts
// optional if you want HTTP endpojnts to receive external events// backend.add(import('@backstage/plugin-events-backend'));// optional if you want to use AWS SQS instead of HTTP endpoints to receive external events// backend.add(import('@backstage/plugin-events-backend-module-aws-sqs'));backend.add(import('@backstage/plugin-events-backend-module-bitbucket-server'));backend.add( import('@backstage/plugin-catalog-backend-module-bitbucket-server'),);
외부 소스에서 이벤트를 어떻게 받을지 정해야 해요.
-
HTTP 엔드포인트를 통해
-
AWS SQS 큐를 통해
-
Google Pub/Sub를 통해
-
Kafka 토픽을 통해
추가 문서:
-
https://github.com/backstage/backstage/tree/master/plugins/events-backend/README.md
-
https://github.com/backstage/backstage/tree/master/plugins/events-backend-module-aws-sqs/README.md
구성
엔티티 제공자를 사용하려면 Bitbucket Server 통합이 설정되어 있어야 해요.
추가로 엔티티 제공자 인스턴스(들)를 구성해야 해요.
app-config.yaml
catalog: providers: bitbucketServer: yourProviderId: # identifies your ingested dataset host: 'bitbucket.mycompany.com' catalogPath: /catalog-info.yaml # default value filters: # optional projectKey: '^apis-.*$' # optional; RegExp repoSlug: '^service-.*$' # optional; RegExp skipArchivedRepos: true # optional; boolean validateLocationsExist: false # optional; boolean schedule: # same options as in SchedulerServiceTaskScheduleDefinition # 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 }
-
host: Bitbucket Server 인스턴스의 호스트. 주의: 이 호스트는 통합으로도 등록되어 있어야 해요. location을 참고하세요. -
catalogPath(선택): 기본값:/catalog-info.yaml.catalog-info.yaml파일을 찾을 경로./로 시작하면 저장소 루트로부터의 절대 경로예요. -
filters(선택): -
projectKey(선택): 프로젝트 키를 기준으로 결과를 필터링하는 데 사용하는 정규식. -
repoSlug(선택): 저장소 slug를 기준으로 결과를 필터링하는 데 사용하는 정규식. -
skipArchivedRepos(선택): 보관된(archived) 저장소를 걸러내기 위한 불리언 플래그. -
validateLocationsExist(선택): 기본값은false예요. 내보내기 전에 존재하는 위치를 검증할지 여부. 이 옵션은 소스 저장소에 존재하지 않는 카탈로그 정보 파일에 대한 위치를 생성하지 않도록 해줘요. -
schedule: -
frequency: 작업을 얼마나 자주 실행할지. 시스템은 호출이 겹치지 않도록 최선을 다해요. -
timeout: 단일 작업 호출이 걸릴 수 있는 최대 시간. -
initialDelay(선택): 첫 호출 전에 지나야 하는 시간. -
scope(선택):'global'또는'local'. 동시성 제어 범위를 설정해요.