本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
访问上下文对象以获取项目详细信息
作为蓝图作者,您可以在合成过程中访问蓝图项目的上下文,以获取空间和项目名称或项目源存储库中的现有文件等信息。您还可以获取诸如蓝图正在生成的重新合成阶段之类的详细信息。例如,您可以访问上下文以了解您是要重新同步以生成祖先捆绑包还是建议的捆绑包。然后,可以使用现有的代码上下文来转换仓库中的代码。例如,您可以编写自己的重新合成策略来设置特定的代码标准。可以将策略添加到小型蓝图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)); } }