프로젝트 세부 정보를 위한 컨텍스트 객체 액세스 - 아마존 CodeCatalyst

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

프로젝트 세부 정보를 위한 컨텍스트 객체 액세스

블루프린트 작성자는 합성 중에 블루프린트 프로젝트의 컨텍스트에 액세스하여 프로젝트 소스 저장소의 공간, 프로젝트 이름 또는 기존 파일과 같은 정보를 얻을 수 있습니다. 블루프린트가 생성하는 재합성 단계와 같은 세부 정보도 얻을 수 있습니다. 예를 들어 컨텍스트에 액세스하여 조상 번들 또는 제안된 번들을 생성하기 위해 재합성하고 있는지 알 수 있습니다. 그러면 기존 코드 컨텍스트를 사용하여 저장소의 코드를 변환할 수 있습니다. 예를 들어, 고유한 재합성 전략을 작성하여 특정 코드 표준을 설정할 수 있습니다. 작은 청사진을 위해 전략을 blueprint.ts 파일에 추가하거나 전략을 위한 별도의 파일을 만들 수 있습니다.

다음 예제는 프로젝트 컨텍스트에서 파일을 찾고, 워크플로 빌더를 설정하고, 특정 파일에 대해 블루프린트가 제공하는 재합성 전략을 설정하는 방법을 보여줍니다.

const contextFiles = this.context.project.src.findAll({ fileGlobs: ['**/package.json'], }); // const workflows = this.context.project.src.findAll({ // fileGlobs: ['**/.codecatalyst/**.yaml'], // }); const security = new WorkflowBuilder(this, { Name: 'security-workflow', }); new Workflow(this, repo, security.getDefinition()); repo.setResynthStrategies([ { identifier: 'force-security', globs: ['**/.codecatalyst/security-workflow.yaml'], strategy: MergeStrategies.alwaysUpdate, }, ]); for (const contextFile of contextFiles) { const packageObject = JSON.parse(contextFile.buffer.toString()); new SourceFile(internalRepo, contextFile.path, JSON.stringify({ ...packageObject, }, null, 2)); } }