Acceder a los objetos de contexto para obtener detalles del proyecto - Amazon CodeCatalyst

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Acceder a los objetos de contexto para obtener detalles del proyecto

Como autor de un plano, puede acceder al contexto del proyecto del plano durante la síntesis para obtener información como los nombres de los espacios y los proyectos, o los archivos existentes en el repositorio de origen de un proyecto. También puede obtener detalles como la fase de resíntesis que está generando el plano. Por ejemplo, puedes acceder al contexto para saber si vas a resintetizar para generar un paquete anterior o un paquete propuesto. Luego, puedes usar el contexto de código existente para transformar el código en tu repositorio. Por ejemplo, puedes escribir tu propia estrategia de resíntesis para establecer estándares de código específicos. La estrategia se puede añadir al blueprint.ts archivo para los planos pequeños o se puede crear un archivo independiente para las estrategias.

El siguiente ejemplo muestra cómo encontrar archivos en el contexto de un proyecto, configurar un generador de flujos de trabajo y establecer una estrategia de resíntesis basada en planos para un archivo concreto:

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)); } }