Accès aux objets contextuels pour les détails du projet - Amazon CodeCatalyst

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Accès aux objets contextuels pour les détails du projet

En tant qu'auteur d'un plan, vous pouvez accéder au contexte du projet du plan pendant la synthèse pour obtenir des informations telles que l'espace et les noms de projet, ou les fichiers existants dans le référentiel source d'un projet. Vous pouvez également obtenir des détails tels que la phase de resynthèse générée par le plan. Par exemple, vous pouvez accéder au contexte pour savoir si vous effectuez une resynthèse pour générer un bundle d'ancêtres ou un bundle proposé. Le contexte de code existant peut ensuite être utilisé pour transformer votre code dans votre référentiel. Par exemple, vous pouvez écrire votre propre stratégie de resynthèse pour définir des normes de code spécifiques. La stratégie peut être ajoutée au blueprint.ts fichier pour les petits plans, ou vous pouvez créer un fichier distinct pour les stratégies.

L'exemple suivant montre comment rechercher des fichiers dans le contexte d'un projet, définir un générateur de flux de travail et définir une stratégie de resynthèse basée sur un plan pour un fichier particulier :

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